3. Отправка сигналов процессам: kill, killall и top

3.1. kill, killall

Эти две команды используются для отправки сигналов процессам. Для команды kill требуется номер процесса в качестве аргумента, а для killall требуется имя процесса.

Обе эти команды допускают опциональное использование аргумента с номером сигнала, отправляемого процессу. По умолчанию они обе отправляют соответствующим процессам сигнал 15 (TERM). Например, если вам нужно убить процесс с PID 785, используйте команду:

$ kill 785

Если вам нужно отправить ему сигнал 19 (STOP), введите:

$ kill -19 785

Допустим обратное, т.е. вам нужно убить процесс, для которого вы знаете имя команды. Вместо того, чтобы искать номер процесса при помощи команды ps, вы можете убить его по имени. Если имя процесса «mozilla», вы можете воспользоваться командой:

$ killall -9 mozilla

В любом случае вы убьете только свои собственные процессы (только если вы не root), поэтому вам не стоит волноваться о процессах других пользователей, если работаете в многопользовательской системе, так как на них это не повлияет.

3.2. Объединение ps и kill: top

top - это программа, одновременно совмещающая функции ps и kill, а также используемая для наблюдения за процессами в режиме реального времени, предоставляя информацию об использовании процессора и памяти, времени работы и т.п., как показано на Рисунок 10.1, «Наблюдение за процессами при помощи top».

Рисунок 10.1. Наблюдение за процессами при помощи top

Наблюдение за процессами при помощи top

Утилита top полностью управляется с клавиатуры. Вы можете получить справку, нажав на клавишу h. Наиболее полезные команды:

  • k: эта команда используется для отправки сигнала процессу. При этом top спросит у вас PID процесса, а затем номер или название отправляемого сигнала (по умолчанию используется TERM или 15);

  • M: эта команда используется для сортировки процессов по объему занятой ими памяти (поле %MEM);

  • P: эта команда используется для сортировки процессов по занятому ими процессорному времени (поле %CPU). Это метод сортировки по умолчанию;

  • u: эта команда используется для вывода процессов заданного пользователя. top спросит у вас его имя. Вам необходимо ввести имя пользователя, а не его UID. Если вы не введете никакого имени, будут показаны все процессы;

  • i: по умолчанию выводятся все процессы, даже спящие. Эта команда обеспечивает вывод информации только о работающих в данный момент процессах (процессы, у которых поле STAT имеет значение R, Running). Повторное использование этой команды вернет вас назад к списку всех процессов.

  • r: эта команда используется для изменения приоритета выбранного процесса.