dr.Brain

doctor Brain

мир глазами веб-разработчика

Командная строка: kill

отправляем сигнал запущенному процессу с помощью команды kill

dr.Brain

время чтения 2 мин.

Photo by Egor Vikhrev on Unsplash

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

Команда kill иcпользуется не только для завершения процессов в соответствии со своим названием. Эта команда так же может отправлять процессам различные сигналы. Но, тем не менее, завершение запущенного процесса является ее основным предназначением.

Синтаксис команды kill предельно прост:

kill <PID>

По умолчанию команда отправляет сигнал TERM процессу с соответствующим идентификатором PID.

Но, запущенному процессу или процессам можно отправить и другие сигналы, в том числе:

  1. HUP (hang up) - сигнал срабатывает автоматически в случае, когда окно терминала, в котором запущен процесс, закрывается до его завершения,
  2. INT (interrupt) - запуск команды с таким сигналом эквивалентен нажатию сочетания клавиш Ctrl + C
  3. QUIT (quit) - такой сигнал немедленно прекращает выполнение процесса и сбрасывает ядро, он соответствует сочетанию клавиш Ctrl + \,
  4. ABRT (abort) - сигнал аналогичен фукнции abort() языка C и направлен непосредственно на сам процесс
  5. KILL (non-catchable, non-ignorable kill) - этот сигнал немедленно прерывает процесс, несохраненный процесс будет потерян, такой сигнал не может быть проигнорирован программой,
  6. ALRM (alarm clock) - сигнал отправляется процессу, когда лимит времени указанный при вызове функции сигнализации истекает,
  7. TERM (software termination signal) - этот сигнал запрашивает остановку процесса и может быть проигнорирован программой, он дает время на корректное завершение процесса.

Для указания сигнала в синтаксисе команды kill есть несколько способов:

kill -s <signal_name>

или

kill -<signal_name>

так же, вместо имени сигнала signal_name можно указать его номер signal_number:

kill -<signal_number>

Кроме того, в команде можно указывать более одного процесса, перечислив ID через пробел:

kill <PID1> <PID2> <PID3>

Спасибо за внимание.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.