Показать запущенные процессы с именами файлов?


12

Я использую Putty для подключения моего сервера Linux, на котором находятся мои сайты. Я могу запустить

# ps aux | less

показать запущенные процессы. Но я хочу показать, какие файлы запускают эти процессы?

Я также пытался

# ps aux | grep <pid>

Но получаю эту ошибку:

-bash: syntax error near unexpected token `newline'

Как правильно это сделать?


4
в grep <pid>, вы должны заменить <pid>свой фактический идентификатор процесса (это число). <pid>это просто заполнитель, а не то, что вы должны ввести.
Бен Фойгт

Ответы:


13

ps aux | grep <pid>не является командой оболочки Обозначение <pid>является общим соглашением, означающим «поместить PID туда». Например, если PID 1234, вы запустите ps aux | grep 1234. Это не очень полезная команда, вы можете запустить ее ps u 1234.

Ваш вопрос не очень понятен. Что вы подразумеваете под «с именами файлов»? Если вы хотите увидеть, какой исполняемый файл запущен процессом 1234:

ls -l /proc/1234/exe

Если вы хотите увидеть, какие файлы открыты в этом процессе:

ls -l /proc/1234/fd

Если вы хотите увидеть полную командную строку с аргументами:

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

Если вы предпочитаете использовать команды, lsof -p1234показывает все файлы, которые открыт в процессе. ps uww 1234показывает различную информацию о процессе 1234, включая полную командную строку.



3

Прежде всего, ps aux | grep <PID>полезно, когда вы хотите показать детали для конкретного процесса, чей PID(Идентификатор процесса) представлен как <PID>.

Например ( ps aux | grep 'firefox\|USER'означает печать только строк, которые содержат firefoxили 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

Итак, PID для моего firefoxэкземпляра - 9021. Итак, чтобы использовать команду, которую вы пытаетесь запустить, я бы заменил <PID>на 9021:

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

Теперь я не уверен, что вы подразумеваете под «отображением, какие файлы запускают эти процессы». Если вы хотите показать, какие файлы используют эти процессы, ps auxэто один из способов сделать это. Скажем, я открыл файл /usr/share/doc/nano/faq.htmlс помощью этой команды:

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

Я мог видеть, какой файл firefoxоткрылся, используя 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

Открытый файл отображается как один из аргументов, передаваемых в Firefox. Обратите внимание, что PID отличается (теперь это 31763вместо 9021), потому что каждая работающая программа имеет свой уникальный PID.


Еще одна полезная команда top. Если вы запустите его с -cпереключателем, он покажет аргументы, переданные команде, а с -u <your user>ним будут показаны только процессы, запущенные вашим именем пользователя (замените его <your user>фактическим именем пользователя):

top -c -u terdon

Это вывод на моей локальной машине (пользователь terdonзапускает только два процесса):

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                          

Для объяснения информации, представленной top, см. Мой ответ на связанный вопрос по SU.


0

некоторые символы в оболочке для специального назначения, такие как <>? "; ...

grep PID бесполезен, потому что PID - это идентификатор процесса, и grep найдет похожее число ...

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.