Linux: немного о psКоманад ps - предназначена для отображения запущенных процессов. Большинство пользователей Linux пользуются ей каждый день. Но далеко не каждый администратор, а тем более пользователь, знает все ее возможности.

[ad#ad-2]
Команда ps предназначена для отображения запущенных процессов. Для отображения всех запущенных процессов надо к команде добавить ключ -A или -e.

# ps -A
  PID TTY          TIME CMD
    1 ?        00:00:01 init
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 migration/0
    4 ?        00:00:00 ksoftirqd/0
    5 ?        00:00:00 watchdog/0
    6 ?        00:00:00 migration/1
    7 ?        00:00:02 ksoftirqd/1
    8 ?        00:00:00 watchdog/1
    9 ?        00:00:00 events/0
   10 ?        00:00:00 events/1
   11 ?        00:00:00 cpuset
   12 ?        00:00:00 khelper
   13 ?        00:00:00 netns
   14 ?        00:00:00 async/mgr
   15 ?        00:00:00 kintegrityd/0
   16 ?        00:00:00 kintegrityd/1
   17 ?        00:00:00 kblockd/0
   18 ?        00:00:00 kblockd/1
   19 ?        00:00:00 kacpid
   20 ?        00:00:00 kacpi_notify
   21 ?        00:00:00 kacpi_hotplug
   22 ?        00:00:00 ata/0
........
.....
........
28022 pts/0    00:03:42 firefox
29320 ?        00:00:02 pdflush
29669 ?        00:00:00 pdflush
29926 ?        00:00:00 pickup
30007 ?        00:00:00 gvfsd-computer
30437 ?        00:00:07 evince
30795 ?        00:00:00 cron
30797 ?        00:00:00 sh
30798 ?        00:00:00 run-parts
30799 ?        00:00:00 gettemptodb
30800 ?        00:00:00 perl
.......

Для получения более подробной информации о всех запущенных процессах выполним

# ps -Al
.......
5 S     0 22146  2252  0  80   0 -  3804 poll_s ?        00:00:00 smbd
1 S     0 23192     1  0  80   0 -  7848 poll_s ?        00:00:00 apache2
5 S    33 23200 23192  0  80   0 -  7848 inet_c ?        00:00:00 apache2
5 S    33 23201 23192  0  80   0 -  7848 inet_c ?        00:00:00 apache2
5 S    33 23202 23192  0  80   0 -  7848 inet_c ?        00:00:00 apache2
5 S    33 23203 23192  0  80   0 -  7848 inet_c ?        00:00:00 apache2
5 S    33 23204 23192  0  80   0 -  7848 inet_c ?        00:00:00 apache2
.......

Для отображения всей возможной информации о процессах выполним

# ps -AlF
........
1 S root     23192     1  0  80   0 -  7848 poll_s  4108   1 09:05 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 23200 23192  0  80   0 -  7848 inet_c  3504   1 09:05 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 23201 23192  0  80   0 -  7848 inet_c  3504   1 09:05 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 23202 23192  0  80   0 -  7848 inet_c  3504   1 09:05 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 23203 23192  0  80   0 -  7848 inet_c  3504   1 09:05 ?        00:00:00 /usr/sbin/apache2 -k start
5 S www-data 23204 23192  0  80   0 -  7848 inet_c  3504   1 09:05 ?        00:00:00 /usr/sbin/apache2 -k start
.......

Для отображения всех процессов в иерархическом порядке добавим ключ H

$ ps -AlFH
..........
1 S root     23192     1  0  80   0 -  7848 poll_s  4108   0 09:05 ?        00:00:00   /usr/sbin/apache2 -k start
5 S www-data 23200 23192  0  80   0 -  7848 inet_c  3504   1 09:05 ?        00:00:00     /usr/sbin/apache2 -k start
5 S www-data 23201 23192  0  80   0 -  7848 inet_c  3504   1 09:05 ?        00:00:00     /usr/sbin/apache2 -k start
5 S www-data 23202 23192  0  80   0 -  7848 inet_c  3504   1 09:05 ?        00:00:00     /usr/sbin/apache2 -k start
5 S www-data 23203 23192  0  80   0 -  7848 inet_c  3504   1 09:05 ?        00:00:00     /usr/sbin/apache2 -k start
5 S www-data 23204 23192  0  80   0 -  7848 inet_c  3504   1 09:05 ?        00:00:00     /usr/sbin/apache2 -k start
............

Список всех процессов на сервере

# ps ax
# ps axu

Вывод дерева процессов

# ps -ejH
# ps axjf
# pstree

Отображение процессов с информацией о безопасности (кем, с какими правами, как настроена безопасность для процесса)

# ps -eo euser,ruser,suser,fuser,f,comm,label
# ps axZ
# ps -eM

Отображение всех процессов запущенных пользователем tester

ps -U tester -u tester u
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
tester   32350  0.8  0.0   4220  1664 pts/3    S    12:38   0:00 su tester
tester   32362  2.5  0.1   6504  3780 pts/3    S    12:38   0:00 bash
tester   32391  0.6  0.0   6688  2608 pts/3    S+   12:38   0:00 mc
tester   32394 12.0  0.1   6536  3812 pts/4    Ss+  12:38   0:00 bash -rcfile .bashrc

Пользовательский формат отображения информации о процессах

# 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=
23192
23200
23201
23202
23203
23204

Или можно выполнить такую команду

# pgrep apache2

Отображение имени процесса с указанным ID

# ps -p 55977 -o comm=

Поиск 10ки самых ресурсоемких процессов (по количеству занятой памяти)

# ps -auxf | sort -nr -k 4 | head -10

Поиск 10ки самых ресурсоемких процессов (по количеству занятых ресурсов процессора)

# ps -auxf | sort -nr -k 3 | head -10
Теги: