Molti utenti alle prese con Linux finiscono per chiedersi, prima o poi, come si possa accedere alla lista dei programmi in esecuzione.
Spesso questi ultimi cercano qualcosa che rassomigli al Gestore Attività di Windows, accessibile premendo la combinazione di tasti CTRL+ALT+CANC.
Ebbene questa è la guida giusta: anche nelle distribuzioni Linux-based esistono dei metodi per controllare i processi in esecuzione, sia con interfaccia grafica sia tramite riga di comando.
Di seguito vi illustreremo i migliori task manager per Linux, sia dotati di interfaccia grafica sia basati sulla riga di comando, ciascuno con i suoi punti di forza e adatto a precisi scenari.
Il nostro consiglio è quello di imparare ad usare anche i gestori CLI-based (quelli da riga di comando, per intenderci), così da sapersi muovere anche nel caso in cui si avessero problemi con il server grafico.
Task manager per Linux
GNOME System Monitor
Si tratta di un task manager presente in quasi tutte le distribuzioni dotate di desktop GTK-based (GNOME, Cinnamon, Unity, Xfce e via discorrendo).
Molto simile al task manager di Windows, il Monitor di Sistema (è così che viene italianizzato) può visualizzare i processi attivi e fermarli, distruggerli, visualizzarne la mappatura in memoria o scoprirne le proprietà tramite il menu contestuale.
Inoltre esso può visualizzare lo stato e le risorse occupate sia per la rete che per i dischi.
GNOME System Monitor è preinstallato insieme all’ambiente desktop e richiamabile con una ricerca nel menu di sistema (chiave “Monitor di sistema” in italiano) oppure recandosi in Sistema > Amministrazione > Monitor di sistema (o System Monitor).
KSysGuard
E’ il task manager predefinito dei desktop Plasma-based: si tratta di un’applicazione in grado di visualizzare i processi in esecuzione seguendo uno schema ad albero, interromperli, terminarli, ucciderli ed impostarne la priorità. KSysGuard permette inoltre di visualizzare lo stato generale del sistema in termini di risorse (CPU, memoria e rete).
KSysGuard può essere invocato digitando la combinazione di tasti CTRL+Esc in ambiente Plasma oppure direttamente da Krunner. Non è consigliabile installarlo in ambienti differenti da Plasma/KDE poiché ne richiede la maggior parte delle dipendenze.
Lxtask
Lxtask è un task manager grafico minimale ma molto efficace, preinstallato nel desktop LXDE.
Senza troppi fronzoli esso permette di vedere la lista dei processi in esecuzione, ordinarli in base ai vari parametri (CPU usata, memoria e via dicendo) e terminarli al bisogno. Le sigle su ogni colonna hanno significato identico a quelle di “ps” (paragrafo seguente).
Lxtask è spesso incluso nei repository delle varie distribuzioni Linux-based.
ps
PS è il padre di tutti i task manager! In realtà si tratta di un comando Bash per ottenere la lista processi nei sistemi Linux-based. Per un utilizzo ottimale è bene invocarlo utilizzando i giusti parametri e rendendo l’output navigabile.
Dunque per ottenere una lista dei processi attivi con ps andremo a digitare da terminale
ps aux | less
Dove:
- a si usa per visualizzare i processi di tutti gli utenti;
- u si usa per visualizzare le informazioni dettagliate su ogni processo;
- x si usa per visualizzare anche i processi non agganciati ad un terminale, come i demoni ed i cron.
L’output è qualcosa di simile a questo (per avanzare alla pagina successiva basterà premere la barra spaziatrice):
Visto così può sembrare ostico ma l’output di ps è più semplice di quanto sembri! Vediamo il significato delle varie colonne:
- USER: l’utente che ha avviato il processo;
- PID: l’identificativo del processo (da dare in pasto a kill -9 per terminarlo);
- %CPU: la percentuale di CPU usata;
- %MEM: la percentuale di RAM usata;
- VSZ: la dimensione del processo nella memoria virtuale (file di swap, VirtualSiZe);
- RSS: la dimensione del processo nella memoria reale (RAM, ReSidentSize);
- TTY: l’eventuale terminale o TTY a cui è agganciato il processo;
- START: l’ora di avvio del processo;
- TIME: il tempo di esecuzione del processo;
- COMMAND: il nome del processo con gli eventuali parametri di invocazione (il comando completo).
pstree
Pstree è un comando da terminale basato su ps che, nella sua classica forma, viene utilizzato per conoscere l’albero dei processi relativo ad un programma in esecuzione.
Con i giusti parametri, tuttavia, può diventare un task manager con visualizzazione ad albero, sicuramente meno dettagliato di ps ma con un buon feedback grafico che permette di comprendere quale processo deriva da chi.
Il consiglio è di invocarlo nella forma
pstree -ahlp | less
Dove:
- il parametro a mostra il comando completo (processo + parametri);
- il parametro h evidenzia il processo padre di pstree;
- il parametro l mostra colonne lunghe;
- il parametro p mostra, dopo la virgola, il PID del processo.
L’output è qualcosa di simile a questo (per avanzare alla pagina successiva sarà sufficiente premere la barra spaziatrice):
top
Al contrario di ps e pstree, top è un vero e proprio task manager da linea di comando. Solitamente, per consultare la lista dei processi attivi e dei relativi dettagli, viene invocato senza parametri con il comando
top
In tal modo viene mostrata la lista parziale dei processi attivi, ordinata per impostazione predefinita per percentuale di CPU occupata.
L’output è simile a questo (per uscire da top basta premere il tasto q):
Come vedete l’output si divide in due parti: in alto sono raggruppate le statistiche relative allo stato del sistema, in basso i dettagli relativi ai singoli processi. Vediamo come interpretare le varie sigle.
Parte sistema:
- prima riga: ora corrente, tempo di attività, utenti loggati, load average;
- seconda riga: tasks – numero processi, X running – processi in esecuzione sulla CPU, X sleeping – processi in attesa di CPU, X stopped – processi fermati, X zombie – processi in stato zombie;
- terza riga: statistiche sulla CPU e storico;
- quarta riga: statistiche sulla memoria RAM;
- quinta riga: statistiche sulla memoria virtuale (swap).
Parte processi:
- PID: l’ID del processo in esecuzione (da dare in pasto a kill -9 per terminarlo);
- USER: l’utente che ha avviato il processo;
- PR: la priorità del processo in scheduling;
- NI: il valore nice del processo (anch’esso collegato alla priorità);
- VIRT: la memoria virtuale (swap) usata;
- RES: la memoria residente (RAM) usata;
- SHR: la memoria condivisa usata;
- %CPU: la percentuale di CPU usata;
- %MEM: la percentuale di RAM usata;
- TIME+: la durata del comando in esecuzione;
- COMMAND: il processo in esecuzione con gli eventuali parametri (comando completo).
Top permette di ordinare i processi, oltre che in base alla percentuale di CPU occupata, anche basandosi su altri parametri (le varie colonne) semplicemente premendo un tasto. Ad esempio:
- A permette di ordinare i processi per ora di inizio;
- T per tempo di esecuzione;
- M per percentuale di RAM usata;
- P per PID (ordine crescente).
Ma non finisce qui, poiché top è un task manager davvero ricco di opzioni che va studiato a fondo. Vi consigliamo di dare uno sguardo alla sua pagina di manuale digitando da terminale
man top
htop
Praticamente l’interfaccia di top scritta con le librerie ncurses: la differenza è che questo può essere usato anche con il mouse – ad esempio, basterà cliccare su una colonna per ordinare la lista in base ad essa.
Le funzionalità che con top si ottenevano utilizzando i singoli tasti sono inoltre accessibili tramite i tasti funzione (F1, F2… F12): la lista può essere trovata nella parte bassa dell’interfaccia.
Davvero ottimo per i TTY che supportano l’integrazione con il mouse o per imparare ad usare suo fratello top con l’ausilio iniziale del mouse.
E’ possibile invocarlo da terminale digitando
htop
Ecco un esempio di output:
Htop non è sempre presente di default nelle distribuzioni Linux-based ma può essere installato comodamente tramite i repository di sistema.