Завершение процессов в Linux

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

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

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

  1. SIGINT — стандартный сигнал, использующийся и в графических оболочках. При его отправлении процесс сохраняет все изменения, завершает выполняемые действия и только потом отключается. Если вы работаете через «Терминал», используйте комбинацию клавиш Ctrl + C, чтобы быстро «убить» текущий процесс.
  2. SIGQUIT — практически не отличается от предыдущего сигнала, но при его отправке программа уже сама решает, стоит ли завершать работу. При этом создается дамп памяти, что может быть полезно определенным пользователям. Это второй и последний сигнал, который можно послать сочетанием клавиш при взаимодействии с «Терминалом». Для этого используется комбинация Ctrl + /.
  3. SIGHUP — используется для разрыва связи с «Терминалом». Рекомендуется задействовать этот сигнал, если требуется прервать соединение с интернетом.
  4. SIGTERM — сразу же удаляет процесс, но его дочерние опции продолжают выполняться до полного завершения операций, а после производится освобождение системных ресурсов.
  5. SIGKILL — аналогичный предыдущему сигнал, но при этом оставшиеся дочерние задачи не прекращают свое функционирование.

Теперь вы знаете обо всех доступных сигналах, использующихся при «убийстве» процессов в разных дистрибутивах Linux. Используйте их вместе с приведенными в методах ниже командами в качестве аргумента.

Завершаем процессы в Linux

Существуют разные системные средства, позволяющие «убить» какой-либо процесс. Иногда для этого приходится узнавать его идентификатор, а в других ситуациях достаточно только названия. Далее мы предлагаем детально изучить все представленные методы, чтобы найти оптимальный для себя и выполнять его при необходимости, учитывая описанные ранее сигналы.

Способ 1: «Системный монитор»

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

  1. Перейдите в меню «Показать приложения», где отыщите «Системный монитор» и запустите его, кликнув по значку левой кнопкой мыши.
  2. Запуск системного монитора в Linux для завершения процессов

  3. В появившемся окне вы увидите список процессов. Найдите имя необходимой для завершения задачи.
  4. Поиск процессов через системный монитор в Linux

  5. Дополнительно вы можете переместиться в свойства объекта через контекстное меню, чтобы посмотреть всю информацию о нем.
  6. Просмотр общий сведений о процессе через системный монитор в Linux

  7. Щелкните правой кнопкой мыши по строке и выберите пункт «Завершить». Это же действие выполняется через горячую клавиш Ctrl + E. Еще внизу имеется кнопка, позволяющая завершить процесс без вызова контекстного меню.
  8. Завершение процессов через системный монитор в Linux

  9. Если же операция не завершилась по каким-либо причинам, задействуйте опцию «Убить».
  10. Принудительное убийство процесса через системный монитор в Linux

  11. Ознакомьтесь с информацией в предупреждении и подтвердите свои намерения.
  12. Подтверждение убийства процесса через системный монитор в Linux

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

Способ 2: Команда kill

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

Подробнее: Просмотр списка процессов в Linux

Далее остается только запустить «Терминал» и задействовать упомянутую команду. Для начала изучите ее простой синтаксис: kill -сигнал pid_процесса. Теперь давайте рассмотрим пример «убийства».

  1. Откройте меню приложений и запустите «Терминал».
  2. Запуск Терминала для завершения процессов в Linux

  3. Введите простую команду ps aux | grep name для получения информации об указанном процессе, где name — имя желаемой программы.
  4. Команда для поиска идентификатора процесса при завершении через kill в Linux

  5. В отобразившемся результате отыщите главный PID и запомните его.
  6. Просмотр идентификатора процесса для завершения через kill в Linux

  7. Введите kill PID для завершения процесса через сигнал SIGTERM. Вместо PID вам нужно написать определенный ранее номер идентификатора.
  8. Завершение процесса через терминальную команду kill в Linux

  9. Теперь вы можете снова использовать ps aux | grep name, чтобы проверить, была ли завершена операция.
  10. Проверка завершения процесса через команду kill в Linux

  11. То же самое действие по «убийству» осуществляется и через другой аргумент путем ввода kill -TERM.
  12. Использование сигналов при вводе команды kill в Linux

  13. Если приведенные выше команды не принесли никакого результата, потребуется обозначить сигнал SIGKILL, вставив команду kill -KILL.
  14. Принудительное убийство процесса через команду kill в Linux

Учтите, что некоторые процессы запускаются от имени суперпользователя, соответственно, для их завершения требуются привилегии. Если при попытке ввода kill вы получаете информацию «Отказано в доступе», вводите перед основной командой sudo, чтобы получилось sudo kill.

Способ 3: Команда pkill

Следующая консольная утилита называется pkill и является модернизированной версией предыдущей команды. Здесь все реализовано точно по такому же образу, но вместо PID от пользователя требуется вводить название процесса.

  1. Для отправки сигнала SIGTERM используйте pkill + название процесса.
  2. Использование команды pkill в Linux для завершения процесса

  3. После вы можете убедиться, что операция была успешно завершена.
  4. Проверка завершения процесса через команду pkill в Linux

  5. Задайте вручную тип сигнала, введя такую форму pkill -TERM ping, где -TERM — необходимый сигнал.
  6. Использование сигналов для завершения процессов через команду pkill в Linux

  7. Используйте pgrep для определения того, что процесс больше не выполняется, если вы не хотите задействовать ps
  8. Проверка дерева процессов при использовании pkill в Linux

Способ 4: Команда killall

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

Использование команды killall в Linux для завершения всех процессов с одинаковым названием

Теперь вы знаете все о завершении процессов в Linux. Перед выполнением методов убедитесь, что принудительное «убийство» не приведет к системным сбоям. Если же ни один вариант не позволил полностью избавиться от процесса, попробуйте просто перезагрузить компьютер или удалить софт, связанный с этой опцией.

Помогла ли Вам статья?
Да Нет

Рекомендуем:

Задайте вопрос или оставьте мнение
Получить ответ на Email
Уведомить о

1 Ответ
По рейтингу
Новые Старые
Межтекстовые Отзывы
Посмотреть все комментарии
натали
19 октября 2023 14:23

СПАСИБО большое, помогли быстро разобраться