Mostra i processi in esecuzione con i nomi dei file?


12

Sto usando putty per collegare il mio server Linux in cui si trovano i miei siti. Posso eseguire

# ps aux | less

per mostrare i processi in esecuzione. Ma voglio visualizzare quali file eseguono questi processi?

Ho anche provato

# ps aux | grep <pid>

Ma ottenere questo errore:

-bash: syntax error near unexpected token `newline'

Qual è il modo corretto di farlo?


4
in grep <pid>, dovresti sostituirlo <pid>con il tuo vero ID di processo (è un numero). <pid>è solo un segnaposto, non qualcosa che dovresti effettivamente digitare.
Ben Voigt,

Risposte:


13

ps aux | grep <pid>non è un comando di shell. La notazione <pid>è una convenzione comune che significa "inserire il PID lì". Ad esempio, se il PID è 1234, eseguiresti ps aux | grep 1234. Questo non è un comando molto utile, potresti anche eseguire ps u 1234.

La tua domanda non è molto chiara. Cosa intendi con "con i nomi dei file"? Se vuoi vedere quale eseguibile è in esecuzione il processo 1234:

ls -l /proc/1234/exe

Se vuoi vedere quali file sono aperti da quel processo:

ls -l /proc/1234/fd

Se vuoi vedere l'intera riga di comando con argomenti:

tr '\0' '\n' </proc/1234/cmdline

Se si preferisce utilizzare i comandi, lsof -p1234mostra tutti i file aperti dal processo. ps uww 1234mostra varie informazioni sul processo 1234 inclusa l'intera riga di comando.



3

Innanzitutto, ps aux | grep <PID>è utile quando si desidera mostrare i dettagli di un processo specifico il cui PID(Identificatore del processo) è rappresentato da <PID>.

Ad esempio ( ps aux | grep 'firefox\|USER'significa stampare solo le righe che contengono firefoxo USER):

ps aux | grep 'firefox\|USER'
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
terdon  9021  2.5 11.8 1950888 970832 ?      Sl   Apr03 108:41 /opt/firefox/firefox

Quindi, il PID per la mia firefoxistanza è 9021. Quindi, per utilizzare il comando che si sta tentando di eseguire, sostituirei <PID>con 9021:

ps aux | grep 9021
terdon  9021  2.5 11.5 1948776 942640 ?      Sl   Apr03 109:03 /opt/firefox/firefox

Ora, non sono sicuro di cosa intendi per "visualizzare quali file eseguono questi processi". Se intendi visualizzare quali file utilizzano questi processi, ps auxè un modo per farlo. Di 'che ho aperto il file /usr/share/doc/nano/faq.htmlusando questo comando:

 firefox /usr/share/doc/nano/faq.html 

Ho potuto vedere quale file si firefoxera aperto usando ps:

ps aux | grep firefox
terdon   31763 18.7  1.0 682916 84352 pts/10   Sl+  17:10   0:02 firefox /usr/share/doc/nano/faq.html

Il file aperto viene mostrato come uno degli argomenti passati a Firefox. Si noti che il PID è diverso (è ora 31763invece di 9021) perché ogni programma in esecuzione ha il proprio PID unico.


Un altro comando utile è top. Se lo esegui con l' -copzione mostrerà gli argomenti passati a un comando e con -u <your user>esso mostrerà solo i processi avviati dal tuo nome utente (sostituisci <your user>con il tuo nome utente effettivo):

top -c -u terdon

Questo è l'output sul mio computer locale (l'utente terdonesegue solo due processi):

top - 17:14:41 up 3 days, 49 min, 14 users,  load average: 0.48, 0.54, 0.55
Tasks: 228 total,   1 running, 226 sleeping,   0 stopped,   1 zombie
%Cpu(s):  7.1 us,  5.5 sy,  0.0 ni, 86.5 id,  0.0 wa,  0.0 hi,  0.9 si,  0.0 st
KiB Mem:   8187940 total,  8007220 used,   180720 free,   349264 buffers
KiB Swap:  8191996 total,     5556 used,  8186440 free,  4173004 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND                                                       
31573 terdon    20   0 24900 5576 1684 S   0.0  0.1   0:00.20 bash                                                          
31763 terdon    20   0  666m  77m  28m S   0.0  1.0   0:02.39 firefox /usr/share/doc/nano/faq.html                          

Per una spiegazione delle informazioni mostrate da top, vedere la mia risposta a una domanda correlata su SU.


0

alcuni caratteri sotto la shell sono per scopi speciali come <>? "; ...

grep PID non è utile perché PID è id di processo e grep troverà valori numerici simili ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.