Убиваем процессы в Linux

Описываем процесс завершения работы отдельных или множества процессов в различных дистрибутивах операционной системы Linux.

  • Сигналы завершения процессов в Linux
  • Как завершить процесс в Linux
    • С помощью команды kill
    • С помощью команды pkill
    • С помощью команды killall

    Сигналы завершения процессов в Linux

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

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

    • SIGINT — это относительно щадящий сигнал завершения работы. Его можно послать, одновременно нажав клавиши Ctrl + C . Этот сигнал разрешает процессу завершить выполнение своей работы, удалить после себя весь мусор и спокойно уйти на покой.
    • SIGQUIT — этот сигнал также пытается убить процесс, предлагая ему закончить свою работу, но процесс может проигнорировать этот запрос и тут же закрыться. При этом SIGQUIT формирует некий слепой (дамп памяти) программы для восстановления данных при повторном запуске. Чтобы его послать, нужно одновременно нажать клавиши Ctrl + / .
    • SIGHUP — этот сигнал отправляется автоматически, когда теряется интернет-соединение между управляющим компьютером и сервером.
    • SIGTERM — сигнал, убивающий процесс, который обрабатывается программой.
    • SIGKILL — убивает процесс, игнорируя зависимости, которые остаются активными.

    Как завершить процесс в Linux

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

    Предположим, что вы находитесь в аэропорту и запустили свой сервер на node.js, или начали процесс установки определенного пакета. Для прекращения этих действий достаточно нажать одну из следующих комбинаций клавиш:

    1. Ctrl + C — чтобы отправить сигнал SIGINT и завершить процесс в щадящем режиме.
    2. Ctrl + / — чтобы дать процессу возможность игнорировать завершение сторонних задач.

    С помощью команды kill

    Для отправки сигнала о завершении работы программы, функционирующей в фоновом режиме, можно применить команду kill.

    Структура команды в данном случае выглядит так: вначале вводится команда kill, после чего задается вид сигнала (к примеру, -TERM), и в конце добавляется идентификатор процесса, известный как process ID.

    Убедитесь, что процесс с идентификатором 10528 завершен, используя команду завершения процесса с сигналом TERM.

    В составе команды первые два элемента хорошо известны. Команда kill неизменна, но вместо сигнала -TERM допустимо указать другой сигнал. Что касается PID, его необходимо предварительно определить.

    Для выполнения данной задачи применяется команда `ps aux`, в сочетании с `grep`, где в качестве аргумента указывается имя программы.

    Вот несколько образцов:

    • Открываем терминал.
    • Вводим туда команду ps aux
Оцените статью
GZIP - утилита сжатия и восстановления файлов