Сегодня я хочу познакомить Вас с очередной замечательной программой для мониторинга Linux систем, это две не замысловатые буквы ps, в которых вложено много смысла. Как в общем почти во все программы…
ps — показывает процессы происходящие в системе в текущий момент. Чтобы посмотреть все процессы используйте опцию -A или -e:
1 2 3 |
# ps -A |
Вот вывод программы на одном из моих VDS:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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) |
Как правило, у «самостоятельного» сервера текущих процессов гораздо больше:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
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 <a href="https://logi.cc/kaketo-kak-mne-perezagruzit-apache-2-web-server-pod-linux-unix/">apache2</a> 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 в её информативности. Давайте далее рассмотрим несколько полезных параметров программы:
Более подробный вывод
1 2 3 |
# ps -Al |
Так же можно переключиться в так называемый экстра полный режим. Тут показываются переменные для каждого процесса системы. Делается это командой:
1 2 3 |
# ps -AlF |
По видимому в системах FreeBSD, как минимум 6 и 7 версии экстра полный режим вывода команды ps отсутствует, в то время как система Gentoo мне в нём не отказала…
Увидеть Треды(Threads) ( LWP и NLWP)
1 2 3 |
# ps -AlFH |
Показать Треды(Threads) сразу после процессов
1 2 3 |
# ps -AlLm |
Показать все процессы на сервере
1 2 3 4 |
# ps ax # ps axu |
Показать дерево процессов
1 2 3 4 5 |
# ps -ejH # ps axjf # pstree |
Показать конфиденциальную информацию
1 2 3 4 5 |
# ps -eo euser,ruser,suser,fuser,f,comm,label # ps axZ # ps -eM |
Показать все процессы запущенные с правами юзера Ivan
1 2 3 |
# ps -U Ivan -u Ivan u |
Показать вывод программы в формате определённым пользователем
1 2 3 4 5 |
# 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
1 2 3 |
# ps -C apache2 -o pid= |
или
1 2 3 |
# pgrep apache2 |
Показать имя процесса с ID 15246
1 2 3 |
# ps -p 15246 -o comm= |
Показать Топ 10 процессов «пожирателей» памяти
1 2 3 |
# ps -auxf | sort -nr -k 4 | head -10 |
Показать Топ 10 процессов «пожирателей» процессора
1 2 3 |
# ps -auxf | sort -nr -k 3 | head -10 |
И это малая часть возможностей программы. Более подробно о программе ps можно почитать на официальном сайте: http://procps.sf.net/.
Я лишь могу добавить, что чаще всего использую параметры:
Для просмотра процессов системы
1 2 3 |
# ps aux |
Для нахождения определённого процесса в системе и определения его параметров
В данном случае — apache.
1 2 3 |
# ps aux | grep apache |