root 467 433 0 18:12 tty1 00:00:00 sh /usr/X11R6/bin/startx
X Window System была запущена командой startx. Это сценарий командной оболочки, который запускает сервер X и выполняет некоторые начальные программы системы X.
root 717 716 13 18:28 pts/0 00:00:01 emacs
Этот процесс представляет окно в системе X, выполняющее программу Emacs. Он был запущен оконным диспетчером в ответ на запрос нового окна. Командной оболочке был назначен новый псевдотерминал pts/0 для считывания и записи.
root 512 1 0 18:12 tty1 00:00:01 gnome-help-browser --sm-client-i
Это обозреватель системы помощи среды GNOME, запущенный оконным диспетчером.
По умолчанию программа ps выводит только процессы, поддерживающие подключение к терминалу, консоли, последовательной линии связи или псевдотерминалу. Другие процессы выполняются без взаимодействия с пользователем на терминале. Обычно это системные процессы, которые система Linux применяет для управления совместно используемыми ресурсами. Команду ps можно применять для отображения всех таких процессов, использовав опцию -е и запросив "полную" информацию с помощью опции -f.
Точная синтаксическая запись команды ps и формат вывода могут немного отличаться в разных системах. Версия GNU команды ps, применяемая в Linux, поддерживает опции, взятые из нескольких предшествующих реализаций ps, включая варианты из UNIX-систем BSD и AT&T, и добавляет множество своих опций. См. интерактивное справочное руководство для получения подробных сведений о доступных опциях и форматах вывода команды ps.
Системные процессы
Далее приведено несколько процессов, выполнявшихся в другой системе Linux. Вывод был сокращен для облегчения понимания. В следующих примерах вы увидите, как определить состояние или статус процесса. Вывод командой ps столбца STAT предоставляет коды текущего состояния процесса. Самые широко распространенные коды перечислены в табл. 11.1. Смысл некоторых из них станет понятен чуть позже в этой главе. Другие же не рассматриваются в данной книге и их можно спокойно игнорировать.
| Код STAT | Описание |
|---|---|
S | Спящий. Обычно ждет появления события, такого как сигнал или активизация ввода |
R | Выполняющийся. Строго говоря "работоспособный", т.е. в очереди на выполнение, либо выполняющийся, либо готовый к выполнению |
D | Непрерывно спящий (ожидающий). Обычно ждущий завершения ввода или вывода |
T | Остановленный. Обычно остановленный системой управления заданиями командной оболочки или находящийся под контролем отладчика |
Z | Умерший или процесс-зомби |
N | Задача с низким приоритетом, "nice" |
W | Разбитый на страницы (не используется в Linux с ядром версии 2.6 и последующих версий) |
S | Ведущий процесс сеанса |
+ | Процесс в группе фоновых процессов |
l | Многопотоковый процесс |
< | Задача с высоким приоритетом |
$ ps ах
PID TTY STAT TIME COMMAND
1 ? Ss 0:03 init [5]
2 ? S 0:00 [migration/0]
3 ? SN 0:00 [ksoftirqd/0]
4 ? S< 0:05 [events/0]
5 ? S< 0:00 [khelper]
6 ? S< 0:00 [kthread]
840 ? S< 2:52 [kjournald]
888 ? S
3069 ? Ss 0:00 /sbin/acpid
3098 ? Ss 0:11 /usr/sbin/hald --daemon=yes
3099 ? S 0:00 hald-runner
8357 ? Ss 0:03 /sbin/syslog-ng
8677 ? Ss 0:00 /opt/kde3/bin/kdm