В ОС Linux для завершения работы процесса или выполнения других операций над процессом используется подача специального сигнала процессу. Сигнал - это системный запрос на прерывание. Сигналы могут посылаться разными способами, например, ядром в случае нарушения принятых стандартов взаимодействия, терминалом, в случае ввода специальных комбинаций клавиш и пользователем при помощи команд kill или killall. Команда kill используется для подачи сигнала процессу в соответствии с его идентификатором и имеет следующий синтаксис:
сигнал - символическое имя или номер посылаемого сигнала; идентификатор процесса - номер процесса (PID), которому посылается сигнал. В случае запуска команды kill без указания сигнала, в качестве посылаемого сигнала будет использован сигнал TERM, который предназначен для завершения работы процесса. Следует отметить, что команда kill может завершать работу только определенных процессов, владельцем которых является пользователь, запустивший команду kill. В следующем листинге приведен пример использования команды kill для завершения процесса демона cupsd. Для определения идентификатора процесса демона cupsd можно использовать команду pgrep, которая возвращает идентификатор найденного процесса, или команду ps.
Завершение работы процесса при помощи команды kill.
Команда killall используется для подачи сигнала процессу в соответствии с его именем и имеет следующий синтаксис:
killall [-и пользователь] [ -сигнал ] имя процесса...
сигнал - символическое имя или номер посылаемого сигнала; пользователь - имя пользователя, который является владельцем процесса; имя процесса - имя процесса, которому посылается сигнал. При использовании команд kill или killall возможно подавать сигналы процессам, обладающим определенными параметрами, например, владелец.