Android

Как убить процесс в Linux

?? Subway Surfers - Official Launch Trailer

?? Subway Surfers - Official Launch Trailer

Оглавление:

Anonim

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

Ну, это случилось со всеми нами в какой-то момент, не так ли? Решение состоит в том, чтобы прекратить или убить процесс приложения. Но как?

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

Основное различие между этими инструментами состоит в том, что kill завершает процессы на основе идентификатора процесса (PID), а команды killall и pkill завершают запущенные процессы на основе их имен и других атрибутов.

Обычные пользователи могут уничтожать свои собственные процессы, но не те, которые принадлежат другим пользователям, в то время как пользователь root может уничтожать все процессы.

Сигналы убийства системы

kill , killall и pkill отправляют данный сигнал указанным процессам или группам процессов. Когда сигнал не указан, каждый инструмент отправляет 15 ( TERM ).

Наиболее часто используемые сигналы:

  • 1 (-HUP): перезагрузить процесс. 9 (-KILL): убить процесс. 15 (-ТЕРМ): изящно остановить процесс.

Сигналы могут быть указаны тремя различными способами:

  • использование числа (например, -1) с префиксом «SIG» (например, -SIGHUP) без префикса «SIG» (например, -HUP).

Используйте опцию -l для отображения всех доступных сигналов:

kill -l # or killall -l

Описанные ниже шаги будут работать на всех дистрибутивах Linux.

Завершение процессов с помощью команды kill

Чтобы завершить процесс с помощью команды kill , сначала вам нужно найти PID процесса. Вы можете сделать это с помощью различных команд, таких как top , ps , pidof и pgrep .

Допустим, браузер Firefox перестал отвечать на запросы, и вам нужно убить процесс Firefox. Чтобы найти идентификатор процесса, используйте команду pidof :

pidof firefox

Команда напечатает все процессы Firefox:

2551 2514 1963 1856 1771

Как только вы узнаете, что Firefox обрабатывает PID для завершения, все они посылают сигнал TERM :

kill -9 2551 2514 1963 1856 1771

Завершение процессов с помощью команды killall

Команда killall завершает все программы, которые соответствуют указанному имени.

Используя тот же сценарий, что и раньше, вы можете убить процесс Firefox, набрав:

killall -9 firefox

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

Например, чтобы завершить все процессы, запущенные от имени пользователя «sara», вы должны выполнить следующую команду:

sudo killall -u sara

Завершение процессов с помощью команды pkill

pkill завершает процессы, которые соответствуют шаблону, указанному в командной строке:

pkill -9 firefox

Название процесса не должно быть точным совпадением.

С помощью pkill вы также можете отправить сигнал процессам, которые принадлежат данному пользователю. Чтобы убить только процессы firefox, принадлежащие пользователю «sara», вы должны набрать:

pkill -9 -u sara firefox

Вывод

Завершение работы неотвечающих программ с помощью команд kill , killall и pkill - простая задача. Вам нужно только знать имя процесса или PID.

убить терминал