Сегодня я хочу познакомить Вас с очередной замечательной программой для мониторинга Linux систем, это две не замысловатые буквы ps, в которых вложено много смысла. Как в общем почти во все программы…

ps – показывает процессы происходящие в системе в текущий момент. Чтобы посмотреть все процессы используйте опцию -A или -e:
# ps -A
Вот вывод программы на одном из моих VDS:
PID TT STAT TIME COMMAND 8478 ?? SJ 0:10.18 /usr/local/sbin/httpd -DSSL 9245 ?? IJ 0:18.28 /usr/local/sbin/httpd -DSSL 15881 ?? IJ 0:00.01 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra- 15916 ?? SJ 44:12.30 /usr/local/libexec/mysqld --defaults-extra-file=/var 35488 ?? SsJ 0:37.21 /usr/sbin/named -u bind 35712 ?? SsJ 6:23.88 /usr/local/sbin/dovecot -c /usr/local/etc/dovecot.co 35713 ?? SJ 1:44.25 dovecot-auth 35734 ?? IJ 0:14.67 pop3-login 35735 ?? IJ 0:01.01 imap-login 35758 ?? SsJ 5:26.60 sendmail: accepting connections (sendmail) 35764 ?? IsJ 2:19.35 /usr/sbin/cron -s 35781 ?? IsJ 3:02.96 /usr/sbin/inetd -wW -C 60 56590 ?? SsJ 0:00.25 sshd: root@ttyp2 (sshd) 97612 ?? SJ 0:32.97 /usr/local/sbin/httpd -DSSL 99771 ?? SsJ 0:01.58 /usr/local/sbin/httpd -DSSL 99778 ?? IJ 0:00.01 /usr/local/sbin/httpd -DSSL 39104 p2 R+J 0:00.00 ps -A 56641 p2 SsJ 0:00.04 -csh (csh)
Как правило, у «самостоятельного» сервера текущих процессов гораздо больше:
PID TTY TIME CMD
1 ? 00:00:05 init
2 ? 00:00:00 kthreadd
3 ? 00:00:00 migration/0
4 ? 00:00:03 ksoftirqd/0
5 ? 00:00:00 watchdog/0
6 ? 00:00:00 migration/1
7 ? 00:00:03 ksoftirqd/1
8 ? 00:00:00 watchdog/1
9 ? 00:00:05 events/0
10 ? 00:00:05 events/1
11 ? 00:00:00 khelper
86 ? 00:00:44 kblockd/0
87 ? 00:00:46 kblockd/1
90 ? 00:00:00 kacpid
91 ? 00:00:00 kacpi_notify
170 ? 00:00:00 ata/0
171 ? 00:00:00 ata/1
172 ? 00:00:00 ata_aux
173 ? 00:00:00 ksuspend_usbd
178 ? 00:00:00 khubd
181 ? 00:00:00 kseriod
231 ? 00:10:44 kswapd0
272 ? 00:00:00 aio/0
273 ? 00:00:00 aio/1
953 ? 00:00:00 scsi_eh_0
955 ? 00:00:00 scsi_eh_1
957 ? 00:00:00 scsi_eh_2
959 ? 00:00:00 scsi_eh_3
961 ? 00:00:00 scsi_eh_4
963 ? 00:00:00 scsi_eh_5
986 ? 00:00:00 khpsbpkt
1054 ? 00:00:00 kpsmoused
1057 ? 00:00:00 kondemand/0
1058 ? 00:00:00 kondemand/1
1064 ? 00:00:00 rpciod/0
1065 ? 00:00:00 rpciod/1
1066 ? 00:00:00 reiserfs/0
1067 ? 00:00:00 reiserfs/1
1160 ? 00:00:01 udevd
2383 ? 00:02:28 apache2
2742 ? 00:07:57 kjournald
4319 ? 00:00:08 syslog-ng
4856 ? 3-12:31:18 mysqld
4934 ? 00:00:06 sshd
5114 ? 00:00:00 cron
5185 tty1 00:00:00 agetty
5186 tty2 00:00:00 agetty
5187 tty3 00:00:00 agetty
5189 tty4 00:00:00 agetty
5191 tty5 00:00:00 agetty
5193 tty6 00:00:00 agetty
8524 ? 00:00:00 pdflush
8537 ? 00:00:02 pdflush
13516 ? 00:00:00 apache2
13674 ? 00:00:00 apache2
...
....
13924 ? 00:00:00 apache2
13929 ? 00:00:00 sshd
13932 pts/0 00:00:00 bash
13940 ? 00:00:00 apache2
13941 ? 00:00:00 apache2
13942 ? 00:00:00 apache2
..
....
13974 ? 00:00:00 apache2
13975 ? 00:00:00 apache2
13976 pts/0 00:00:00 psПлюс ps в её информативности. Давайте далее рассмотрим несколько полезных параметров программы:
Более подробный вывод
# ps -AlТак же можно переключиться в так называемый экстра полный режим. Тут показываются переменные для каждого процесса системы. Делается это командой:
# ps -AlFПо видимому в системах FreeBSD, как минимум 6 и 7 версии экстра полный режим вывода команды ps отсутствует, в то время как система Gentoo мне в нём не отказала…
Увидеть Треды(Threads) ( LWP и NLWP)
# ps -AlFHПоказать Треды(Threads) сразу после процессов
# ps -AlLmПоказать все процессы на сервере
# ps ax # ps axu
Показать дерево процессов
# ps -ejH # ps axjf # pstree
Показать конфиденциальную информацию
# ps -eo euser,ruser,suser,fuser,f,comm,label # ps axZ # ps -eM
Показать все процессы запущенные с правами юзера Ivan
# ps -U Ivan -u Ivan uПоказать вывод программы в формате определённым пользователем
# ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm # ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm # ps -eopid,tt,user,fname,tmout,f,wchan
Показать только все ID процесса apache2
# ps -C apache2 -o pid=или
# pgrep apache2Показать имя процесса с ID 15246
# ps -p 15246 -o comm=Показать Топ 10 процессов «пожирателей» памяти
# ps -auxf | sort -nr -k 4 | head -10Показать Топ 10 процессов «пожирателей» процессора
# ps -auxf | sort -nr -k 3 | head -10И это малая часть возможностей программы. Более подробно о программе ps можно почитать на официальном сайте: http://procps.sf.net/.
Я лишь могу добавить, что чаще всего использую параметры:
Для просмотра процессов системы
# ps auxДля нахождения определённого процесса в системе и определения его параметров
В данном случае – apache.
# ps aux | grep apache
