Читать интересную книгу Основы программирования в Linux - Мэтью Нейл

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 197 198 199 200 201 202 203 204 205 ... 324
Примечание

Точная синтаксическая запись команды ps и формат вывода могут немного отличаться в разных системах. Версия GNU команды ps, применяемая в Linux, поддерживает опции, взятые из нескольких предшествующих реализаций ps, включая варианты из UNIX-систем BSD и AT&T, и добавляет множество своих опций. См. интерактивное справочное руководство для получения подробных сведений о доступных опциях и форматах вывода команды ps.

Системные процессы

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

Таблица 11.1

Код STAT Описание S Спящий. Обычно ждет появления события, такого как сигнал или активизация ввода R Выполняющийся. Строго говоря "работоспособный", т.е. в очереди на выполнение, либо выполняющийся, либо готовый к выполнению D Непрерывно спящий (ожидающий). Обычно ждущий завершения ввода или вывода T Остановленный. Обычно остановленный системой управления заданиями командной оболочки или находящийся под контролем отладчика Z Умерший или процесс-зомби N Задача с низким приоритетом, "nice" W Разбитый на страницы (не используется в Linux с ядром версии 2.6 и последующих версий) S Ведущий процесс сеанса + Процесс в группе фоновых процессов l Многопотоковый процесс < Задача с высоким приоритетом

$ <b>ps ах</b>

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&lt;   0:05 [events/0]

5     ?     S&lt;   0:00 [khelper]

6     ?     S&lt;   0:00 [kthread]

840   ?     S&lt;   2:52 [kjournald]

888   ?     S&lt;s  0:03 /sbin/udevd --daemon

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

9119  ?     S    0:11 konsole [kdeinit]

9120  pts/2 Ss   0:00 /bin/bash

9151  ?     Ss   0:00 /usr/sbin/cupsd

9457  ?     Ss   0:00 /usr/sbin/cron

9479  ?     Ss   0:00 /usr/sbin/sshd -o PidFile=/var/run/sshd.init.pid

9618  tty1  Ss+  0:00 /sbin/mingetty --noclear tty1

9619  tty2  Ss+  0:00 /sbin/mingetty tty2

9621  tty3  Ss+  0:00 /sbin/mingetty tty3

9622  tty4  Ss+  0:00 /sbin/mingetty tty4

9623  tty5  Ss+  0:00 /sbin/mingetty tty5

9638  tty6  Ss+  0:00 /sbin/mingetty tty6

10359 tty1  Ss+ 10:05 /usr/bin/Xorg -br -nolisten tcp :0 vt7 -auth

10360 ?     S    0:00 -:0

10381 ?     Ss   0:00 /bin/sh /usr/bin/kde

10438 ?     Ss   0:00 /usr/bin/ssh-agent /bin/bash /etc/X11/xinit/xinitrc

10478 ?     S    0:00 start_kdeinit --new-startup +kcminit_startup

10479 ?     Ss   0:00 kdeinit Running...

10500 ?     S    0:53 kdesktop [kdeinit]

10502 ?     S    1:54 kicker [kdeinit]

10524 ?     Sl   0:47 beagled /usr/lib/beagle/BeagleDaemon.exe --bg

10530 ?     S    0:02 opensuseupdater

10539 ?     S    0:02 kpowersave [kdeinit]

10541 ?     S    0:03 klipper [kdeinit]

10555 ?     S    0:01 kio_uiserver [kdeinit]

10688 ?     S    0:53 konsole [kdeinit]

10689 pts/1 Ss+  0:07 /bin/bash

10784 ?     S    0:00 /opt/kde3/bin/kdesud

11052 ?     S    0:01 [pdflush]

19996 ?     SN1  0:20 beagled-helper /usr/lib/beagle/IndexHelper.exe

20254 ?     S    0:00 qmgr -1 -t fifo -u

21192 ?     Ss   0:00 /usr/sbin/ntpd -p /var/run/ntp/ntpd.pid -u ntp -i /v

21198 ?     S    0:00 pickup -1 -t fifo -u

21475 pts/2 R+   0:00 ps ax

Здесь вы видите на самом деле очень важный процесс

1     ?     Ss   0:03 init [5]

В основном каждый процесс запускается другим процессом, называемым родительским или порождающим процессом. Подобным образом запущенный процесс называют дочерним или порожденным. Когда стартует ОС Linux, она выполняет единственную программу, первого предка и процесс с номером 1, init. Это, если хотите, диспетчер процессов операционной системы и прародитель всех процессов. Другие системные процессы, с которыми вы вскоре встретитесь, запускаются процессом init или другим процессом, запущенным процессом init.

1 ... 197 198 199 200 201 202 203 204 205 ... 324
На этом сайте Вы можете читать книги онлайн бесплатно русская версия Основы программирования в Linux - Мэтью Нейл.

Оставить комментарий