Управление процессами (jobs, ps, kill, nohup)
Уроки курсаУправление процессами (jobs, ps, kill, nohup)
Разбор команды kill
Что такое kill?
kill — это команда, которая отправляет сигналы процессам, идентифицируемым по их PID (Process ID). Хотя название "kill" ассоциируется с прекращением работы процесса, команда может отправлять и другие сигналы, позволяющие, например, корректно завершить процесс, приостановить его выполнение, обновить настройки или выполнить другие действия.
Основной синтаксис
kill [опции] PID...
- PID — идентификатор процесса (или процессов), которым отправляется сигнал.
- Если указывается несколько PID, kill отправит сигнал каждому из них.
Основные сигналы
-
SIGTERM (15):
Стандартный сигнал завершения, который вежливо просит процесс завершиться. Это сигнал по умолчанию.kill 1234 # Отправляет SIGTERM процессу с PID 1234
-
SIGKILL (9):
Безусловное завершение процесса, которое не позволяет процессу выполнить очистку или сохранить данные. Этот сигнал используется, когда процесс не отвечает на SIGTERM.kill -9 1234
-
SIGHUP (1):
Часто используется для перезагрузки процесса, чтобы он перечитал конфигурационные файлы.kill -1 1234
-
SIGSTOP, SIGCONT:
Позволяют приостанавливать и возобновлять выполнение процесса.kill -STOP 1234 # Приостанавливает процесс kill -CONT 1234 # Возобновляет процесс
Основные опции
-
-s сигнал или --signal сигнал:
Позволяет явно указать отправляемый сигнал, например,kill -s SIGKILL 1234. -
-l:
Показывает список доступных сигналов.kill -l
-
-q:
Некоторые реализации поддерживают тихий режим, но это менее распространённо.
Примеры использования
Пример 1: Отправка сигнала SIGTERM (по умолчанию)
kill 1234
Эта команда отправляет сигнал SIGTERM процессу с PID 1234, предлагая ему завершиться корректно.
Пример 2: Принудительное завершение процесса с помощью SIGKILL
kill -9 1234
Если процесс не реагирует на SIGTERM, можно использовать SIGKILL для немедленного прекращения его работы.
Пример 3: Отправка сигнала SIGHUP для перезагрузки процесса
kill -1 1234
Это часто используется для перезагрузки процессов, чтобы они перечитали свои конфигурационные файлы.
Пример 4: Приостановка и возобновление процесса
kill -STOP 1234 # Приостановка процесса kill -CONT 1234 # Возобновление процесса
Полезные советы
-
Используйте SIGTERM по умолчанию:
Прежде чем применять SIGKILL, рекомендуется сначала отправить SIGTERM, чтобы дать процессу шанс корректно завершиться. -
Будьте осторожны с привилегиями:
Для отправки сигналов процессам, запущенным другим пользователем, обычно требуются права суперпользователя (root). -
Проверка PID:
Убедитесь, что вы отправляете сигнал нужному процессу, используя команды типаps,pgrepилиtop. -
Список сигналов:
Командаkill -lпокажет все доступные сигналы и их номера, что полезно для быстрого справочника.
