androide

Comando ps in linux (processi elenco)

Linus Torvalds de Férias do Kernel: O Que Anda Rolando na Lista de E-mails do Linux?

Linus Torvalds de Férias do Kernel: O Que Anda Rolando na Lista de E-mails do Linux?

Sommario:

Anonim

In Linux, un'istanza in esecuzione di un programma si chiama processo. Occasionalmente, quando si lavora su una macchina Linux, potrebbe essere necessario scoprire quali processi sono attualmente in esecuzione.

Esistono numerosi comandi che è possibile utilizzare per trovare informazioni sui processi in esecuzione, tra cui ps , pstree e top sono i più utilizzati.

Questo articolo spiega come utilizzare il comando ps per elencare i processi attualmente in esecuzione e visualizzare informazioni su tali processi.

Come usare il comando ps

La sintassi generale per il comando ps è la seguente:

ps

Per motivi storici e di compatibilità, il comando ps accetta diversi tipi di opzioni:

  • Opzioni di stile UNIX, precedute da un singolo trattino. Opzioni di stileBSD, utilizzate senza trattino. Opzioni lunghe GNU, precedute da due trattini.

È possibile combinare diversi tipi di opzioni, ma in alcuni casi particolari possono apparire conflitti, quindi è meglio attenersi a un tipo di opzione.

Le opzioni BSD e UNIX possono essere raggruppate.

Nella sua forma più semplice, se usato senza alcuna opzione, ps stamperà quattro colonne di informazioni per almeno due processi in esecuzione nella shell corrente, la shell stessa e i processi che vengono eseguiti nella shell quando il comando è stato invocato.

ps

L'output include informazioni sulla shell ( bash ) e sul 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 processo. Di solito, quando si esegue il comando ps , l'informazione più importante che l'utente sta cercando è il PID del processo. Conoscere il PID consente di interrompere un processo non funzionante. TTY - Il nome del terminale di controllo per il processo. TIME - Il tempo cumulativo della CPU del processo, mostrato in minuti e secondi. CMD : il nome del comando utilizzato per avviare il processo.

L'output di cui sopra non è molto utile in quanto non contiene molte informazioni. Il vero potere del comando ps arriva quando viene lanciato con opzioni aggiuntive.

Il comando ps accetta un gran numero di opzioni che possono essere utilizzate per visualizzare un gruppo specifico di processi e diverse informazioni sul processo, ma solo una manciata è necessaria nell'uso quotidiano.

ps è più frequentemente usato con la seguente combinazione di opzioni:

Modulo BSD:

ps aux

  • L'opzione a indica a ps di visualizzare i processi di tutti gli utenti. Non vengono mostrati solo i processi che non sono associati a un terminale e i processi dei leader di gruppo. u sta per un formato orientato all'utente che fornisce informazioni dettagliate sui processi. L'opzione x indica a ps di elencare i processi senza un terminale di controllo. Questi sono principalmente processi che vengono 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…

Abbiamo già spiegato le etichette PID , TTY , TIME e CMD . Ecco una spiegazione di altre etichette:

  • USER : l'utente che esegue il processo. %CPU - L'utilizzo della CPU del processo. %MEM : la percentuale della dimensione impostata per il 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, ad esempio Z (zombie), S (inattivo) e R (in esecuzione). START : l'ora in cui è stato avviato il comando.

L'opzione f indica a ps di visualizzare una vista ad albero dei processi padre-figlio:

ps auxf

Il comando ps consente anche di ordinare l'output. Ad esempio, per ordinare l'output in base all'utilizzo della memoria, è necessario utilizzare:

ps aux --sort=-%mem

Modulo UNIX:

ps -ef

  • L'opzione -e indica a ps di visualizzare tutti i processi. -f indica un elenco a tutto formato, che fornisce informazioni dettagliate sui processi.

Il comando visualizza le informazioni in otto colonne etichettate come 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…

Le etichette che non sono già state spiegate hanno il seguente significato:

  • UID : uguale a USER , l'utente che esegue il processo. PPID : l'ID del processo principale. C - Come %CPU , l'utilizzo della CPU di processo. STIME : uguale a START , l'ora in cui è stato avviato il comando.

Per visualizzare solo i processi in esecuzione come utente specifico, digitare il comando seguente, dove linuxize è il nome dell'utente:

ps -f -U linuxize -u linuxize

Formato definito dall'utente

L'opzione o consente di specificare quali colonne vengono visualizzate durante l'esecuzione del comando ps .

Ad esempio, per stampare informazioni solo su PID e COMMAND , è necessario eseguire uno dei seguenti comandi:

ps -efo pid, comm

ps auxo pid, comm

Uso di ps con altri comandi

ps può essere usato in combinazione con altri comandi tramite piping.

ps -ef | less

L'output del comando ps può essere filtrato con grep . Ad esempio, per mostrare solo il processo appartenente all'utente root dovresti eseguire:

ps -ef | grep root

Conclusione

Il comando ps è 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 utilizza ps aux o ps -ef per raccogliere informazioni sui processi in esecuzione.

Per ulteriori informazioni su ps , digita man ps nel tuo terminale.

terminale ps