Я хочу знать, как узнать свой идентификатор обработки PID. Однако, когда я пытаюсь сделать это, он говорит:

cat: /proc/PID/status: No such file or directory

Команда, которую я попробовал:

cat /proc/PID/status

3 ответа3

3

В большинстве оболочек и в Perl ваш текущий pid находится в переменной $$:

$ echo $$
14886
$

$ perl -e 'print "$$\n"'
15006
$
2

В /proc/PID/status PID является заполнителем для фактического идентификатора процесса. Вы не можете просто вызвать cat /proc/PID/status потому что этого не существует.

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

ps -ef | grep -i "process name" | grep -v grep

PID будет вторым столбцом, третий столбец - идентификатором родительского процесса.

0

Самый простой способ - использовать команду top на терминале для вывода:


вверх - 11:09:20 до 9 минут, 2 пользователя, средняя загрузка: 0,14, 0,39, 0,39 Задачи: всего 178, 2 бега, 176 спящих, 0 остановок, 0 зомби- процессоров: 2,3% нас, 1,0% си , 0.0% ni, 96.5% id, 0.0% wa, 0.0% hi, 0.2% si, 0.0% st Mem: 3081644k всего, 1178648k использовано, 1902996k свободно, 128244k буферов Swap: всего 0k, 0k использовано, 0k свободно, 392340k кэшировано

PID USER PR NI VIRT RES SHR S% CPU% MEM TIME+ КОМАНДА
2595 пользователь 20 0 82868 21 м 11 м S 3 0,7 0:13,02 npviewer.bin
1375 корень 20 0 167 м 15 м 8400 S 2 0,5 0:13,72 Xorg
2665 пользователь 20 0 397 м 15 м 11 м S 1 0,5 0:00,24 гном-терминал
2689 пользователь 20 0 19276 1364 956 R 1 0,0 0:00,09 вверх
2073 пользователь 20 0 310 м 33 м 8568 S 0 1,1 0:05,65 compiz
2200 пользователь 20 0 212м 10м 8240 S 0 0,3 0:01,97 multiload-apple
2469 пользователь 20 0 612 м 63 м 32 м S 0 2,1 0:17,31 хром-просмотр


Первый столбец выходных данных с четырьмя цифровыми числами (в этом конкретном выходном файле) - это идентификатор процесса для имени процесса в правой части таблицы. Кстати, нажмите «q», чтобы выйти из top, иначе он будет непрерывно опрашивать и обновлять каждые несколько секунд.

top показывает только количество строк экрана с самыми голодными процессами, а не десятки общих процессов. Вы можете использовать шаблон slhck для поиска других процессов. Даже в моем собственном примере было запущено около 200 процессов.

Вы, вероятно, ищете свой идентификатор процесса как промежуточный шаг к чему-то другому. Если вам нужно убить процесс, потому что он неуправляем, вы можете исследовать kill и killall. Вы можете напечатать man kill, и это даст вам полезную информацию. Чтобы закрыть эту справочную страницу и большинство других интерактивных программ CLI, таких как top, нажмите «q».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .