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”.