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

Удаление процессов в 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 (идентификатора процесса), поскольку именно так применяются аргументы. В статье ниже мы подробно описали операцию отображения списка процессов для получения различной информации. Обязательно прочтите его, прежде чем следовать следующим инструкциям.

Так что все, что осталось, это запустить «Терминал» и использовать команду выше. Сначала изучите его простой синтаксис: kill -process_pid signal. Теперь давайте посмотрим на пример «убийства».

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

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

  5. В отображаемом результате найдите основной PID и запомните его.
  6. Удаление процессов в Linux

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

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

  11. То же действие kill выполняется с помощью другого аргумента, набрав kill -TERM.
  12. Удаление процессов в Linux

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

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

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

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

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

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

  5. Установите тип сигнала вручную, вставив модуль pkill -TERM ping, где -TERM — это желаемый сигнал.
  6. Удаление процессов в Linux

  7. Используйте pgrep, чтобы определить, не запущен ли процесс, если вы не хотите использовать ps
  8. Удаление процессов в Linux

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

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

Удаление процессов в Linux

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

Источники
  • https://lumpics.ru/ending-processes-in-linux/
Рейтинг автора
Автор статьи
Андрей Коновалов
Привет, меня зовут Андрей Васильевич Коновалов. В 2006 году окончил Чувашский государственный университет им. Ульянова. По образованию инженер, 8 лет проработал на НПП Экра по специальности. Люблю компьютеры и все, что с ними связано. С 2018 года начал писать о решениях проблем, связанных с компьютерами и программами.
Написано статей
3742
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Проблемы и их решения по компьютерам, смартфонам
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: