Посылка Сигналов Процессам: kill, killall и top

kill, killall

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

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

     $ kill 785
    

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

     $ kill -19 785
    

Допустим, вам нужно убить процесс, для которого вы знаете имя команды. Чтобы не искать номер процесса командой ps, вы можете убить процесс по его имени:

     $ killall -9 netscape
    

Чтобы не случилось, вы будете убивать только свои собственные процессы (если конечно вы не root), так что не беспокойтесь о процессах “соседей” с такими же именами, с ними ничего не произойдет.

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

top это программа, которая соединяет в себе функции ps и kill. Она часто используется в качестве монитора процессов в реальном режиме времени, предоставляя также информацию о загрузке CPU и памяти, времени выполнения и т.д., как показано здесь Рисунок 6.1. Мониторинг процессов с помощью top.

Рисунок 6.1. Мониторинг процессов с помощью top

Мониторинг процессов с помощью top

Программа полностью контролируется с клавиатуры. Справку можно получить по нажатию h. Наиболее часто используемые команды это:

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

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

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

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

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