Linux & FreeBSD: узнаем PID процесса

Автор: | 14/08/2012

Есть много способов узнать PID процесса.

Например – с помощью ps:

# ps aux | grep http
root     1238   0,0  2,6  67012  13004  ??  Ss   вт18      0:18,26 /usr/local/sbin/httpd -DNOHTTPACCEPT
www      1621   0,0  2,8  67012  14336  ??  I    вс13      0:00,11 /usr/local/sbin/httpd -DNOHTTPACCEPT
www      1622   0,0  2,6  67012  13036  ??  I    вс13      0:00,00 /usr/local/sbin/httpd -DNOHTTPACCEPT
www      1623   0,0  2,6  67012  13036  ??  I    вс13      0:00,00 /usr/local/sbin/httpd -DNOHTTPACCEPT
www      1624   0,0  2,6  67012  13036  ??  I    вс13      0:00,00 /usr/local/sbin/httpd -DNOHTTPACCEPT
www      1625   0,0  2,6  67012  13036  ??  I    вс13      0:00,00 /usr/local/sbin/httpd -DNOHTTPACCEPT
www      1693   0,0  2,8  67012  14444  ??  I    вс13      0:00,17 /usr/local/sbin/httpd -DNOHTTPACCEPT
www     38054   0,0  2,8  67012  14408  ??  I    пн08      0:00,12 /usr/local/sbin/httpd -DNOHTTPACCEPT
root    45093   0,0  0,0    496    244   0  R+    9:16      0:00,00 grep http

Другой вариант – с помощью утилиты pidof. Во FreeBSD её сначала надо установить:

# cd /usr/ports/sysutils/pidof
# make install clean

Установка занимает максимум минуту. Теперь можно выполнить:

# pidof httpd
38054 1693 1625 1624 1623 1622 1621 1238

Так же, можно использовать утилиту pgrep. Например:

# pgrep httpd
38054
1693
1625
1624
1623
1622
1621
1238

Или узнать все процессы, запущенные определенной группой, с использованием опции -l для отображения имени процесса:

# pgrep -l -G setevoy
3139 htop
92807 bash
92806 sshd
17401 bash
17400 sshd
2361 bash
2360 sshd
2312 bash
2311 sshd

Или:

# pgrep -l -G www
38054 httpd
1693 httpd
1625 httpd
1624 httpd
1623 httpd
1622 httpd
1621 httpd

Или сразу нескольких групп:

# pgrep -l -G www,setevoy
38054 httpd
3139 htop
1693 httpd
1625 httpd
1624 httpd
1623 httpd
1622 httpd
1621 httpd
92807 bash
92806 sshd
17401 bash
17400 sshd
2312 bash
2311 sshd
1712 bash
1711 sshd

И, как всегда – больше информации в man.