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


12

Я використовую шпаклівку для підключення мого linux-сервера, на якому розміщені мої сайти. Я можу запустити

# ps aux | less

показати запущені процеси. Але я хочу відобразити, які файли запускають ці процеси?

Я також спробував

# ps aux | grep <pid>

Але отримання цієї помилки:

-bash: syntax error near unexpected token `newline'

Який правильний спосіб це зробити?


4
в grep <pid>, ви повинні замінити <pid>фактичним ідентифікатором процесу (це число). <pid>це просто заповнювач, а не те, що ви насправді повинні вводити.
Ben Voigt

Відповіді:


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.