Завершение процессов в Linux
Содержание
Любая программка, утилита либо некий другой элемент операционной системы Linux реализовывается в виде 1-го либо нескольких процессов, которые работают в фоновом или активном режиме. Каждый таковой процесс потребляет определенное количество системных ресурсов и действует отведенный просвет времени. Время от времени случаются ситуации, требующие незамедлительного окончания («убийства») таковой операции, что связано с ненадобностью ее выполнения либо появлением ошибок. В рамках нынешней статьи мы желаем побеседовать о способах воплощения этой задачки.
Типы сигналов для окончания процессов
Для начала затронем тему алгоритмов окончания процессов в дистрибутивах, основанных на Linux. Действие системных средств находится в зависимости от посылаемых сигналов, которые имеют различные значения и принуждают делать определенную последовательность задач. Ниже будут представлены методы, где можно указывать тип сигнала для «убийства» операции, потому мы советуем изучить их все, чтоб разобраться в корректности внедрения.
- SIGINT — стандартный сигнал, использующийся и в графических оболочках. При его отправлении процесс сохраняет все конфигурации, завершает выполняемые деяния и только позже отключается. Если вы работаете через «Терминал», используйте комбинацию кнопок Ctrl + C, чтоб стремительно «убить» текущий процесс.
- SIGQUIT — фактически не отличается от предшествующего сигнала, но при его отправке программка уже сама решает, стоит завершать работу. При всем этом создается дамп памяти, что может быть полезно определенным юзерам. Это 2-ой и последний сигнал, который можно отправить сочетанием кнопок при содействии с «Терминалом». Для этого употребляется композиция Ctrl + /.
- SIGHUP — употребляется для разрыва связи с «Терминалом». Рекомендуется использовать этот сигнал, если требуется оборвать соединение с вебом.
- SIGTERM — сразу удаляет процесс, но его дочерние функции продолжают производиться до полного окончания операций, а после делается освобождение системных ресурсов.
- SIGKILL — аналогичный предшествующему сигнал, но при всем этом оставшиеся дочерние задачки не прекращают свое функционирование.
Сейчас вы понимаете обо всех доступных сигналах, использующихся при «убийстве» процессов в различных дистрибутивах Linux. Используйте их совместно с приведенными в способах ниже командами в качестве аргумента.
Завершаем процессы в Linux
Есть различные системные средства, дозволяющие «убить» какой-нибудь процесс. Время от времени для этого приходится узнавать его идентификатор, а в других ситуациях довольно только наименования. Дальше мы хотим предложить детально изучить все выставленные способы, чтоб отыскать лучший себе и делать его по мере надобности, беря во внимание описанные ранее сигналы.
Метод 1: «Системный монитор»
Начнем с самого обычного, но наименее вариативного способа, который осуществляется через программку графического интерфейса и будет полезен тем юзерам, кто просто желает окончить процесс, не прибегая при всем этом к запуску терминальных команд. Разглядим эту операцию на стандартной оболочке дистрибутива Ubuntu.
- Перейдите в меню «Показать приложения», где найдете «Системный монитор» и запустите его, кликнув по значку левой кнопкой мыши.
В преимущественном большинстве графических оболочек системный монитор реализован схожим образом, потому каких-либо заморочек с осознанием интерфейса появиться не должно.
Метод 2: Команда kill
Для внедрения команды kill будет нужно познание PID (идентификатора процесса), так как конкретно так осуществляется применение аргументов. В статье ниже мы детально обрисовали операцию просмотра перечня процессов для получения различной инфы. Непременно ознакомьтесь с ней перед выполнением последующей аннотации.
Дальше остается только запустить «Терминал» и использовать упомянутую команду. Для начала изучите ее обычный синтаксис:
kill -сигнал pid_процесса
. Сейчас давайте разглядим пример «убийства».
- Откройте меню приложений и запустите «Терминал».
ps aux | grep name
для получения инфы об обозначенном процессе, где name — имя хотимой программки.
В отобразившемся итоге найдете главный PID и запомните его.
Введите kill PID
для окончания процесса через сигнал SIGTERM. Заместо PID вам необходимо написать определенный ранее номер идентификатора.
Сейчас вы сможете опять использовать ps aux | grep name
, чтоб проверить, была ли завершена операция.
То же самое действие по «убийству» осуществляется и через другой аргумент методом ввода kill -TERM
.
Если приведенные выше команды не принесли никакого результата, будет нужно обозначить сигнал SIGKILL, вставив команду kill -KILL
.
Учтите, что некие процессы запускаются от имени суперпользователя, соответственно, для их окончания требуются привилегии. Если при попытке ввода kill вы получаете информацию «Отказано в доступе», вводите перед основной командой sudo, чтоб вышло
sudo kill
.
Метод 3: Команда pkill
Последующая консольная утилита именуется pkill и является модернизированной версией предшествующей команды. Тут все реализовано точно по такому же виду, но заместо PID от юзера требуется вводить заглавие процесса.
- Для отправки сигнала SIGTERM используйте
.pkill + заглавие процесса
pkill -TERM ping
, где -TERM — нужный сигнал.
Используйте pgrep
для определения того, что процесс больше не производится, если вы не желаете использовать ps
Метод 4: Команда killall
В качестве последнего метода мы разглядим команду под заглавием killall. Ее функционирование и синтаксис смотрятся точно так же, как у всех прошлых утилит, потому останавливаться на этом мы не будем. Только уточним, что эта команда позволяет окончить все процессы с обозначенным заглавием разом и может быть применена в различных случаях.
Сейчас вы понимаете все о окончании процессов в Linux. Перед выполнением способов удостоверьтесь, что принудительное «убийство» не приведет к системным сбоям. Если же ни один вариант не позволил стопроцентно избавиться от процесса, попытайтесь просто перезагрузить компьютер либо удалить софт, связанный с этой опцией.
Источник: lumpics.ru