Come trasformare la console Linux in un Monitor di Sistema automatico con tmux

Perché accontentarsi di un noioso e statico prompt di login sulla TTY1 quando puoi trasformare il monitor del tuo rack (o quel vecchio schermo polveroso in ufficio) in una vera e propria centrale di comando degna di un film di hacker?

Vediamo come rimpiazzare il classico login con uno script che lancia automaticamente nvitop e btop in modalità split-screen usando tmux. In questo modo, al boot, avrai sott’occhio lo stato delle tue GPU e le statistiche vitali del sistema senza dover muovere un dito.

Il cuore del progetto: tmux e lo script di automazione

Per prima cosa, abbiamo bisogno di uno strumento che gestisca i pannelli separati. Il re indiscusso qui è tmux. Se non lo hai già, installalo al volo:

sudo apt install -y tmux

Ora creiamo un piccolo script che crei una sessione, divida lo schermo a metà e lanci i nostri due programmi preferiti. Crea il file /home/iltuoutente/consolemonitor.sh e incolla questo codice:

#!/usr/bin/env bash

SESSION=”monitor_session”

# Crea una nuova sessione silente
tmux new-session -d -s $SESSION

# Lancia nvitop nel primo pannello
tmux send-keys -t $SESSION “nvitop” C-m

# Divide lo schermo orizzontalmente (uno sopra, uno sotto)
tmux split-window -v -t $SESSION

# Lancia btop nel secondo pannello
tmux send-keys -t $SESSION “btop” C-m

# Aggancia la sessione per visualizzarla
tmux attach -t $SESSION

Ricordati di dare allo script i permessi di esecuzione, altrimenti non andremo lontano: chmod +x /home/iltuoutente/consolemonitor.sh.

Prendiamo il controllo della TTY1 con SystemD

Qui viene la parte divertente. Vogliamo che Linux, invece di chiederci nome utente e password sulla console fisica, faccia partire direttamente il nostro script. Per farlo, dobbiamo “sostituire” il servizio standard di login (getty).

Crea un nuovo file di servizio: sudo vi /etc/systemd/system/consolemonitor.service ed inserisci questa configurazione (ricordati di sostituire il_tuo_utente con il tuo vero username):

[Unit]
Description=Console Monitor Custom
After=multi-user.target systemd-user-sessions.service
Conflicts=getty@tty1.service

[Service]
User=il_tuo_utente
WorkingDirectory=/home/il_tuo_utente
ExecStart=/home/il_tuo_utente/consolemonitor.sh
Restart=always
StandardInput=tty
StandardOutput=tty
StandardError=tty
TTYPath=/dev/tty1
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=yes

[Install]
WantedBy=multi-user.target

In questo modo stiamo sostanzialmente dicendo a SystemD: “Ehi, lascia stare il login classico sulla TTY1, fammi vedere il nostro monitor di sistema!”.

Attivazione e decollo

Siamo quasi alla fine. Dobbiamo dire al sistema che le regole sono cambiate. Disabilitiamo il vecchio servizio di login sulla console primaria e attiviamo il nostro nuovo giocattolo:

# Ricarica la configurazione di SystemD
sudo systemctl daemon-reload

# Disabilita il login standard sulla tty1
sudo systemctl disable getty@tty1.service

# Abilita il nostro nuovo monitor
sudo systemctl enable consolemonitor.service

Ora non resta che il momento della verità. Incrocia le dita e riavvia:

sudo reboot

Se tutto è andato come previsto, al riavvio vedrai nvitop e btop spartirsi lo schermo in perfetta armonia. Avrai una panoramica immediata su temperature, carico delle GPU e processi, rendendo il tuo server non solo più utile, ma decisamente più “cool”.


Leave a Reply

Your email address will not be published. Required fields are marked *

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close