Главная / Linux / Как остановить процесс в Linux?

Как остановить процесс в Linux?

Бывают моменты, когда процесс в вашей системе Linux начинает вести себя странно, и вы, как администратор, должны остановить его на благо всей системы. Следующие утилиты помогут вам найти процесс и остановить его. Прежде чем мы продолжим, как мы знаем, каждый процесс Linux имеет идентификацию процесса (PID), и нам нужно будет найти конкретный интересующий PID. Для этого мы можем использовать следующие инструменты.

Использование команды ps

Эта команда сообщает о снимке текущего процесса.

Чтобы перечислить все процессы, просто запустите

$ ps -A

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

$ ps aux | Grep Apa

Это перечислит все процессы, которые имеют вышеуказанные буквы в именах своих процессов. Здесь вы можете сузить и получить точный PID вашего процесса.

В качестве замены в вашем арсенале команд вы также можете использовать pidof или pgrep следующим образом

$ pidof zsh

Это вернёт PID процесса Zsh

$ pgrep zsh

Это также вернёт PID процесса zsh.

После того, как вы обнаружите PID, следующим шагом будет остановка процесса. Например, здесь есть различные инструменты: kill, killall, pkill, top и другие.

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

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

Остановить процесс в Linux с помощью команды kill

kill отправляет сигнал процессу. Сигналы могут быть:

SIGHUP, который может быть представлен с 1 и приводит к зависанию процесса.

SIGKILL, который может быть представлен с 9 и приводит к тому, что процесс будет остановлен.

SIGTERM, который может быть представлен 15 и изящно убивает процесс.

Если команда kill выполняется без параметров, по умолчанию используется SIGTERM.

Примеры остановки процесса в действии

Завершает процесс с помощью PID 7089 без сохранения открытых файлов.

$ kill -9 7089
$ kill -SIGKILL 7089

Завершает процесс с PID 7080 после того, как он убедился, что все его файлы сохранены. Это изящно убивает процесс:

$ kill -15 7080
$ kill -SIGTERM 7080

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

Для получения дополнительных опций запустите:

$ man kill

Убить процесс в Linux с помощью команды killall

Команда killall убивает процессы по их именам, как указано выше. Просто сделайте так:

$ killall httpd
$ man killall

Убить процесс в Linux с помощью команды pkill

Сигнальные процессы, основанные на имени и других атрибутах

pkill работает аналогично killall. Его синтаксис так же прост, как:

$ pkill [параметры] шаблон

pkill отправляет сигналы процессам на основе имени и других атрибутов.

Использование pkill очень простое, если вы знаете имя процесса для передачи команды и имя процесса, как показано ниже. По умолчанию он использует сигнал SIGTERM, но при желании его можно изменить.

$ pkill nginx

Все параметры команды:

$ pkill –help

Использование:

pkill [параметры] <шаблон>

Опции:
– , –signal сигнал для отправки (номер или имя)
-e, –echo показать что убито
-c, –count количество совпадающих процессов
-f, –full использовать полное имя процесса для соответствия
-g, –pgroup <PGID, …> совпадает с перечисленными идентификаторами группы процессов
-G, –group <GID, …> соответствуют реальным идентификаторам группы
-i, –ignore-case соответствие без учета регистра
-n, –newest выбрать последний запущенный
-o, –oldest выберите недавно начатый
-P, –parent <PPID, …> соответствуют только дочерним процессам данного родителя
-s, –session <SID, …> совпадают идентификаторы сеанса
-t, –terminal <tty, …> совпадают с помощью управляющего терминала
-u, –euid <ID, …> совпадают по эффективным идентификаторам
-U, –uid <ID, …> совпадают с реальными идентификаторами
-x, – точное совпадение с именем команды
-F, –pidfile <файл> читать PID из файла
-L, –logpidfile не удается, если файл PID не заблокирован
–ns соответствует процессам, которые принадлежат одному и тому же пространству имен как  –nslist <ns, …> список, для которых будут рассматриваться пространства имен   опция –ns.
Доступные пространства имен: ipc, mnt, net, pid, user, uts
-h, –help показать эту справку и выйти
-V, –version вывести информацию о версии и выйти

Убить процесс в Linux с помощью команды top

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

Чтобы убить процессы прямо из «верхнего» интерфейса, нажмите «k». Он попросит вас PID процесса, чтобы остановить. Введите PID и нажмите ввод – он использует –

По умолчанию используется сигнал SIGTERM, как показано ниже. Просто нажмите Enter ещё раз, и top сделает все остальное.

Заключение

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



Оставьте комментарий

Ваш email не будет опубликован. Обязательные поля помечены *

*