Назад Содержание Вперед


Остановка процессов (Killing Processes)

Иногда вам потребуется уничтожить сразу весь процесс (eliminate a process entirely). Для этого используйте команду kill. Синтакс команды killследующий: kill -signal PID, где signal это номер или имя.


ВНИМАНИЕ! Останавливайте процесс только тогда, когда вы не можете завершить его обычным путем.

Иногда процессы не удаляются, когда вы используете команду kill. Обычно это происходит в одном из трех случаев:

  Процесс ожидает устройство, например магнитный диск, для завершения операции перед выходом.
  Процесс ожидает ресурсы, недоступные из-за проблем NFS. Для остановки такого процесса наберите kill -QUIT PID.
  Это процесс "зомби", об этом свидетельствует сообщение defunct в отчете ps. Процесс "зомби" - это такой процесс, который освобождает ресурсы системы, но не получает подтверждение от родительского процесса, получение которого обычно удаляет его из таблицы процессов. При следующей перезагрузке системы процессы-"зомби" удаляются. "Зомби" не влияют на работу системы, и вам не нужно их удалять.

Для остановки процесса (kill a process):

1.  Войдите как суперпользователь. У вас должны быть права администратора (суперпользователя) для остановки процессов, владельцами которых вы не являетесь.
2.  Наберите ps -e и нажмите Return. Выводится список процессов. Используйте номер PID ( ID процесса) в первой графе как ввод на следующем шаге. Если вы знаете какой процесс вызвал проблему, вы можете набрать ps -e | grep имя процесса и нажать Return, чтобы сфокусировать поиск.
3.  Наберите kill PID и нажмите Return. Когда вы набираете kill без аргументов, посылается сигнал 15.
4.  Наберите ps -e и нажмите Return. Проверьте остановлен ли процесс. Если он все еще там (в таблице процессов?), перейдите к шагу 5.
5.  Наберите kill -9 PID и нажмите Return. Процесс должен быть остановлен. Наберите man -s5 signal и нажмите Return для просмотра описания сигналов (signals), используемых kill.

Например, если OpenWindows заморожен (завис) в системе oak, вы должны войти в систему как удаленный пользователь и остановить процесс из другой системы:

elm% rlogin oak
Password:
oak% ps -e | grep openwin
PID TTY      TIME COMD
2212 pts/Ø   Ø:ØØ openwin
2213 pts/1    Ø:ØØ grep openwin
oak% su
Password:
oak# kill 2212
oak# exit
oak% logout
elm%

Использование команд /usr/proc/bin

Solaris версии 2.6 включает набор команд, которые вы можете использовать для вывода подробной технической информации об активных процессах. Краткий перечень этих команд приведен в таблице 1-6.

Table 1-6 Утилиты процесса в каталоге /usr/proc/bin

Команда Описание
pstop pid Остановка процесса.
prun pid Перезапуск процесса.
ptime pid Время, которое процесс использует учетную запись microstate.
pwait pid Ожидание завершения специальных процессов.
pcred pid*Вывод удостоверений (credentials).
pfiles pid*Вывод информации fstat и fcntl для открытых файлов.
pflags pid*Показать /proc флаги трассировки (tracing flags), сигналы ожидания и хранения (pending and held signals), и другой информации о статусе для каждого lwp.
pldd pid*Показать динамические библиотеки, встроенные в каждый процесс (linked into each process).
pmap pid*Показать пространство адресной карты (Show address map space).
psig pid*Вывод действий сигналов (Display signal actions).
pstack pid*Вывод шестнадцатиричной+символьной (hex+symbolic) трассировки стэка (stack trace) для каждого lwp.
ptree pid Показать деревья процесса, включая определенные PID-ы.
pwdx pid*Вывод текущего рабочего каталога.


*Может выполнять только суперпользователь.


ЗАМЕЧАНИЕ:  Если вы часто используете команды /usr/proc/bin, добавьте каталог утилит процесса в вашу переменную PATH, чтобы облегчить доступ к этим командам.

Все команды /usr/bin/proc используют ID процесса (PID) в качестве аргумента команды. Вы можете получить PID, используя команды ps -e и grep для поиска имени процесса, о котором необходимо получить подробную информацию. В следующем примере PID отображается в первом поле (графе) процесса openwin:

oak% ps -e | grep openwin
PID TTY      TIME COMD
2212 pts/Ø   Ø:ØØ openwin
2213 pts/1    Ø:ØØ grep openwin
oak%


Назад Содержание Вперед
Hosted by uCoz