Skip to main content

kill

Утилита kill в операционных системах UNIX и UNIX-подобных системах (например, Linux) используется для завершения процессов. Она позволяет отправлять сигналы процессам, которые могут приводить к их завершению или изменению поведения.

Завершение процесса по имени: Чтобы убить процесс по его имени, вы можете воспользоваться командой pkill. Например, чтобы завершить все процессы с именем "myprocess", вы можете выполнить следующую команду:

pkill myprocess

Это отправит сигнал завершения (SIGTERM) всем процессам с указанным именем.

Завершение дерева процессов: Чтобы прибить дерево процессов (все процессы, зависящие от определенного процесса), вы можете использовать опцию -TERM (или -15) команды kill. Например, предположим, что у вас есть процесс с идентификатором PID, который запускает другие процессы. Вы можете завершить все процессы, зависящие от этого процесса, с помощью следующей команды:

kill -TERM -- -PID

Здесь -PID означает все процессы, зависящие от процесса с указанным идентификатором.

Сигналы, используемые в команде kill: В команду kill можно передавать различные сигналы, которые определяют, как воздействовать на процессы. Некоторые распространенные сигналы включают:

  • SIGTERM (15): Это стандартный сигнал завершения, который по умолчанию отправляется командой kill. Он позволяет процессу корректно завершиться.
  • SIGKILL (9): Этот сигнал немедленно завершает процесс, не давая ему возможность выполнить какие-либо действия предварительной обработки.
  • SIGHUP (1): Этот сигнал обычно используется для перезапуска процесса или обновления его конфигурации.
  • SIGINT (2): Этот сигнал отправляется при нажатии комбинации клавиш Ctrl+C. Он используется для прерывания выполнения процесса в терминале.
  • SIGSTOP (19) и SIGCONT (18): Эти сигналы приостанавливают и возобновляют выполнение процесса соответственно. SIGSTOP приостанавливает процесс без его завершения, а SIGCONT возобновляет его выполнение.

Передать сигнал можно так:

kill -SIGTERM PID
#или
kill -15 PID

Если не указать сигнал явно, по умолчанию используется SIGTERM.