In Linux, un'istanza in esecuzione di un programma è chiamata processo. Occasionalmente, quando si lavora su una macchina Linux, potrebbe essere necessario scoprire quali processi sono attualmente in esecuzione.
Esistono numerosi comandi che puoi utilizzare per trovare informazioni sui processi in esecuzione, con ps , pstree e top essendo quelli più comunemente usati.
Questo articolo spiega come utilizzare ps comando per elencare i processi attualmente in esecuzione e visualizzare le informazioni su tali processi.
Come utilizzare ps Comando #
La sintassi generale per ps il comando è il seguente:
ps [OPTIONS]
Per motivi storici e di compatibilità, il ps comando accetta diversi tipi di opzioni:
- Opzioni di stile UNIX, precedute da un singolo trattino.
- Opzioni di stile BSD, utilizzate senza trattino.
- Opzioni lunghe GNU, precedute da due trattini.
È possibile combinare diversi tipi di opzioni, ma in alcuni casi particolari possono verificarsi conflitti, quindi è meglio utilizzare un solo tipo di opzione.
Le opzioni BSD e UNIX possono essere raggruppate.
Nella sua forma più semplice, se utilizzato senza alcuna opzione, ps stamperà quattro colonne di informazioni per almeno due processi in esecuzione nella shell corrente, la shell stessa e i processi in esecuzione nella shell quando è stato invocato il comando.
ps
L'output include informazioni sulla shell (bash ) e il processo in esecuzione in questa shell (ps , il comando che hai digitato):
PID TTY TIME CMD
1809 pts/0 00:00:00 bash
2043 pts/0 00:00:00 ps
Le quattro colonne sono etichettate PID , TTY , TIME e CMD .
PID- L'ID del processo. Di solito, quando si eseguepscomando, l'informazione più importante che l'utente sta cercando è il PID del processo. Conoscere il PID consente di interrompere un processo malfunzionante.TTY- Il nome del terminale di controllo per il processo.TIME- Il tempo CPU cumulativo del processo, mostrato in minuti e secondi.CMD- Il nome del comando utilizzato per avviare il processo.
L'output sopra non è molto utile in quanto non contiene molte informazioni. La vera potenza di ps il comando arriva quando viene lanciato con opzioni aggiuntive.
Il ps comando accetta un vasto numero di opzioni che possono essere utilizzate per visualizzare un gruppo specifico di processi e diverse informazioni sul processo, ma nell'uso quotidiano ne sono necessarie solo poche.
ps viene utilizzato più frequentemente con la seguente combinazione di opzioni:
Modulo BSD :
ps aux - Il
al'opzione dice apsper visualizzare i processi di tutti gli utenti. Non vengono mostrati solo i processi che non sono associati a un terminale e i processi dei capigruppo. usta per un formato orientato all'utente che fornisce informazioni dettagliate sui processi.- Il
xl'opzione indicapsper elencare i processi senza un terminale di controllo. Si tratta principalmente di processi avviati all'avvio e in esecuzione in background.
Il comando visualizza le informazioni in undici colonne etichettate USER , PID , %CPU , %MEM , VSZ , RSS , STAT , START , TTY , TIME e CMD .
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.8 77616 8604 ? Ss 19:47 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 19:47 0:00 [kthreadd]
...
Abbiamo già spiegato PID , TTY , TIME e CMD etichette. Ecco una spiegazione di altre etichette:
USER- L'utente che esegue il processo.%CPU- La cpuutilizzo del processo.%MEM- La percentuale della dimensione impostata residente del processo sulla memoria fisica sulla macchina.VSZ- Dimensione della memoria virtuale del processo in KiB.RSS- La dimensione della memoria fisica utilizzata dal processo.STAT- Il codice dello stato del processo, comeZ(zombie),S(dormiente) eR(in esecuzione).START- L'ora in cui è stato avviato il comando.
Il f l'opzione dice a ps per visualizzare una vista ad albero dei processi da padre a figlio:
ps auxf
Il ps Il comando consente anche di ordinare l'output. Ad esempio, per ordinare l'output in base all'utilizzo della memoria, dovresti utilizzare:
ps aux --sort=-%mem Modulo UNIX :
ps -ef - Il
-el'opzione indicapsper visualizzare tutti i processi. - Il
-fsi distingue per l'elenco completo, che fornisce informazioni dettagliate sui processi.
Il comando visualizza le informazioni in otto colonne etichettate UID , PID , PPID , C , STIME , TIME e CMD .
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 19:47 ? 00:00:01 /sbin/init
root 2 0 0 19:47 ? 00:00:00 [kthreadd]
...
Le etichette che non sono già state spiegate hanno il seguente significato:
UID- Uguale aUSER, l'utente che esegue il processo.PPID- L'ID del processo principale.C- Come%CPU, l'utilizzo della CPU del processo.STIME- ComeSTART, l'ora in cui è stato avviato il comando.
Per visualizzare solo i processi in esecuzione come utente specifico, digita il comando seguente, dove linuxize è il nome dell'utente:
ps -f -U linuxize -u linuxize Formato definito dall'utente #
Il o l'opzione consente di specificare quali colonne vengono visualizzate durante l'esecuzione di ps comando.
Ad esempio, per stampare solo informazioni sul PID e COMMAND , eseguiresti uno dei seguenti comandi:
ps -efo pid,comm ps auxo pid,comm Utilizzo di ps Con altri comandi #
ps può essere utilizzato in combinazione con altri comandi tramite piping.
Se vuoi visualizzare l'output di ps comando, una pagina alla volta invialo tramite pipe a less comando:
ps -ef | less
L'output di ps il comando può essere filtrato con grep . Ad esempio, per mostrare solo il processo che appartiene all'utente root dovresti eseguire:
ps -ef | grep root Conclusione #
Il ps command è uno dei comandi più comunemente usati durante la risoluzione dei problemi sui sistemi Linux. Ha molte opzioni, ma di solito la maggior parte degli utenti usa ps aux o ps -ef per raccogliere informazioni sui processi in esecuzione.
Per ulteriori informazioni su ps , digita man ps nel tuo terminale.
Se hai domande o feedback, sentiti libero di lasciare un commento.