ps
ps (от англ. process status) — программа в UNIX, Unix-подобных и других POSIX-совместимых операционных системах, выводящая отчёт о работающих процессах.
Синтаксис
ps [опции]
- Опции, отбирающие процессы для отчёта:
- A : все процессы;
- a : связанные с конкретным терминалом, кроме главных системных процессов сеанса, часто используемая опция;
- N : отрицание выбора;
- d : все процессы, кроме главных системных процессов сеанса;
- e : все процессы;
- p: только перечисленные процессы (следом указывается один или несколько PID);
- f : расширение информации;
- T : все процессы на конкретном терминале;
- a : процессы, связанные с текущим терминалом, а также процессы других пользователей;
- r : информация только о работающих процессах;
- x : процессы, отсоединённые от терминала;
- u : выбор идентификатора(ов) эффективного пользователя;
- U : выбор идентификатора(ов) реального пользователя.
- o : позволяет определить свой формат вывода (после -o добавляем pid,comm,tty)
Выводимая информация
Столбцы:
- UID : идентификатор пользователя;
- PID : идентификатор процесса;
- PPID : идентификатор родительского процесса;
- C : приоритет процесса, используемый планировщиком задач;
- STIME : время старта процесса;
- TTY : терминал, с которым связан данный процесс;
- RSS : размер страниц памяти;
- TIME : процессорное время, занятое этим процессом;
- CMD : команда, запустившая данный процесс «с некоторыми опциями выводит и каталог, откуда процесс был запущен»;
- STAT : состояние, в котором на данный момент находится процесс;
- WCHAN : для спящего процесса, это адрес функции ядра, где он сейчас находится; если процесс выполняется, то "-".
Опция o позволяет указать набор столбцов в ответе:
ps -o pid,user,command
Параметры STAT
- R : процесс выполняется в данный момент;
- S : процесс ожидает (т.е. спит менее 20 секунд);
- I : процесс бездействует (т.е. спит больше 20 секунд);
- D : процесс ожидает ввода-вывода (или другого недолгого события), непрерываемый;
- Z : zombie или defunct процесс, то есть завершившийся процесс, код возврата которого пока не считан родителем;
- T : процесс остановлен;
- W : процесс в свопе;
- < : процесс в приоритетном режиме;
- N : процесс в режиме низкого приоритета;
- L : real-time процесс, имеются страницы, заблокированные в памяти;
- s : лидер сессии.
Примеры использования
# ps PID TTY TIME CMD 2643 pts/0 00:00:00 su 2644 pts/0 00:00:00 bash 3092 pts/0 00:00:00 ps
# ps ax PID TTY STAT TIME COMMAND 1 ? S 0:01 init [3] 2 ? SN 0:00 [ksoftirqd/0] 3 ? S< 0:00 [events/0] 4 ? S< 0:00 [khelper] 5 ? S< 0:00 [kblockd/0] 29 ? S 0:00 [pdflush]
# ps af PID TTY STAT TIME COMMAND 2617 pts/0 Ss 0:00 -bash 2643 pts/0 S 0:00 \_ su - 2644 pts/0 S 0:00 \_ -bash 3100 pts/0 R+ 0:00 \_ ps af 2176 tty6 Ss+ 0:00 /sbin/mingetty tty6 2175 tty5 Ss+ 0:00 /sbin/mingetty tty5
Примечания
- Альтернативой ps является команда top, удобно выводящая на экран постоянно обновляющуюся информацию, однако top ограничена размерами окна, поэтому всё, что не может поместиться на экран, просто игнорируется.
- Для команды ps удобно пользоваться конвейером и утилитой less для пролистывания выводимой информации с помощью кнопок вверх и вниз, например
ps ax | less
. - С помощью утилиты grep удобно искать и выводить только нужные процессы, например
ps ax | grep smbd
. - В связи с возможностью написания модуля, подгружаемого к ядру, и возвращающего на запрос от ps модифицированный список процессов, администраторам не рекомендуется всецело полагаться на результаты ps и top при подозрениях на возможность несанкционированного вмешательства.
Ссылки
- Спецификация ps в Единой спецификации UNIX на сайте The Open Group (Дата обращения: 6 июня 2009) (англ.)
ps(1)
— страница справки man по пользовательским командам OpenBSD (англ.) (Дата обращения: 6 июня 2009) (англ.)ps(1)
— страница справки man по пользовательским командам FreeBSD (англ.) (Дата обращения: 6 июня 2009) (англ.)