Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Управление процессами

Чтобы получить список процессов, выполняемых в данный момент, введите: ``ps -aux'', что выведет примерно вот что:

USER       PID %CPU %MEM  SIZE   RSS TTY STAT START   TIME COMMAND
bin         69  0.0  1.0   788   320  ?  S   Nov 30   0:00 /usr/sbin/rpc.portmap
frampton 10273  0.0  2.1  1136   664  p0 S    14:12   0:00 -bash
frampton 10744  0.0  1.1   820   360  p0 R    17:25   0:00 ps -aux
frampton 10745  0.0  0.8   788   264  p0 S    17:25   0:00 more
nobody   10132  0.0  1.8  1016   588  ?  S    13:36   0:00 httpd
nobody   10133  0.0  1.8   988   568  ?  S    13:36   0:00 httpd
nobody   10413  0.0  1.8  1012   580  ?  S    14:56   0:00 httpd
nobody   10416  0.0  1.8  1012   580  ?  S    14:56   0:00 httpd
nobody   10418  0.0  1.8  1012   588  ?  S    14:57   0:00 httpd
nobody   10488  0.0  1.7   976   556  ?  S    15:34   0:00 httpd
nobody   10564  0.0  1.8   988   564  ?  S    16:06   0:00 httpd
nobody   10600  0.0  1.8   988   564  ?  S    16:15   0:00 httpd
nobody   10670  0.0  1.8   988   568  ?  S    16:45   0:00 httpd
nobody   10704  0.0  1.7   976   552  ?  S    17:03   0:00 httpd
root         1  0.0  1.0   776   312  ?  S   Nov 30   1:13 init [3]
root         2  0.0  0.0     0     0  ?  SW  Nov 30   0:00 (kflushd)
root         3  0.0  0.0     0     0  ?  SW  Nov 30   0:00 (kswapd)

Список показывает владельца процесса (“nobody” для специальных сервисов, как web-сервера), идентификатор процесса, % времени CPU, занимаемого процессом, % памяти, занятой процессом и прочие данные.

Для получения подробной информации о процессе, наберите: ``ps pid'' (где “pid” задает идентификатор процесса). Например, “ps 10704 ” выведет:

10704  ?  S     0:00 /usr/local/etc/httpd/httpd

Данный процесс является web-сервером (Apache web-сервер указан в списке задач много раз, почему так получается читайте в разделе Администрирование Web-сервера и HTTP Proxy главы 7).

Если процесс повис (не действует), можно использовать “kill -HUP pid ” (здесь “pid ” является идентификатором процесса, который можно узнать из списка процессов, полученного от команды “ps”). Например, если сервисы Internet (процесс inetd, в нашем примере #123) не работает должным образом, скомандуйте: ``kill -HUP 123'' (или, что безопасней, используйте команду ``killall'' и укажите имя процесса: ``killall -HUP inetd'') должен перезапустить процесс. Опция -HUP команды kill отдает процессу сигнал “hang up”; процесс перезапустится.

Если что-то повисло уже серьезно, и тактика снятия процесса не помогла, придется перезагрузить систему. См. подробности в разделе Выключение и перезапуск системы в главе 6.

Иногда надо приостановить процесс, а потом возобновить его. Например, некая задача интенсивно использует CPU, а вам нужно записать диск на IDE CD-R. Проблема в том, что устройства на IDE используют CPU в своих обращениях к вводу/выводу. Если CPU слишком занят, то вы получите запорченный CD! Следующие две команды отправляют процесс в спячку и оживляют его:

kill -STOP 945
kill -CONT 945

Red Hat имеет лучший способ запуска и останова процессов, который описан в разделе Запуск и завершение процессов, ниже.