Рассказываем, как завершить работу одного или нескольких процессов в разных дистрибутивах Linux.
В Linux управление процессами осуществляется с помощью специальных сигналов. Каждый сигнал задает определенный набор параметров и моделей поведения для ядра и запущенных программ. Например, завершить выполнение определенных задач, удалить все временные файлы или закончить обрабатывать полученные данные. Системе Linux и запущенным процессам эти сигналы хорошо знакомы, и они умеют на них правильно реагировать. Поэтому они работают по всей системе без ограничений.
Эти сигналы обычно посылает сама система, но это может делать и администратор компьютера. Правда, перед этим ему стоит ознакомиться с тем, к каким последствиям может привести халатное отношение к командам завершения процессов.
Как я уже рассказывал раньше, процесс можно убить, используя определенные сочетания клавиш в терминале.
Допустим, находясь в терминале, вы запустили собственный node.js сервер и хотите прекратить его работу (или же начали загрузку какого-то пакета). Эти задачи можно прервать, нажав одну из двух комбинаций клавиш:
Если нужно передать сигнал завершения процесса какой-то программе, которая работает в фоновом режиме, можно воспользоваться командной kill .
У этой команды следующая структура: сначала отправляется сама команда kill , затем указывается тип сигнала (например -TERM ), а следом номер процесса, так называемый process ID.
$ kill -TERM 10528
С первыми двумя составляющими команды все понятно. kill никогда не меняется, вместо -TERM можно вписать другой сигнал, а вот PID сначала нужно отыскать.
Для этого используется команда ps aux | grep название программы .
Вот несколько примеров:
Ищем процесс
Фиксируем номер
Убиваем
Вот та же самая процедура, но более наглядно. В одном окне терминала запущена программа ping, и в реальном времени она посылает сигналы на сайт. Во втором окне я прописал команду ps aux | grep ping. Терминал выдал мне список процессов с таким названием. Я нашел среди них свой, он запущен под Process ID 8823.
Это наше пространство для проведения эксперимента
Теперь я могу закрыть этот процесс, введя команду kill -TERM 8823.
Номер PID указан в самом начале каждой строки
И мне даже не нужно проверять, действительно он завершился или нет. В оболочке Gnome 3 в центре уведомлений тут же появилось соответствующее сообщение.
pkill — это не отдельная программа, а надстройка над kill. Разница между ними заключается в том, что для запуска первой не требуется сначала выяснять PID. Программа pkill анализирует содержимое директории proc, сравнивает введенное название программы с PID, который указан там, и затем посылает сигнал завершения работы по указанному адресу.
По описанию процесс кажется замысловатым, но по факту для конечного пользователя все выглядит просто.
В нашем примере опять будем убивать ping, только теперь без PID. Нам не пришлось искать никакие номера и анализировать их
По уведомлению видно, что команда pkill сработала
Описанные выше методы хорошо работают, если нужно завершить один процесс. А когда перед нами условный Google Chrome, создавший по процессу на каждую вкладку, то приходится туго. Закрывать все вручную сложновато. Для этого и нужна команда killall.
У нее такой же синтаксис, как у pkill. Просто вводите команду, а следом за ней название программы, которую нужно убить.
Вот так, к примеру, можно полностью вывести из строя браузер Firefox. Он даже не успеет никаких вопрос задать
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…