“Убить” процесс можно несколькими способами. Главное знать его имя или PID (process id). Если у Вас что-то “грузит” систему, воспользуйтесь утилитой top или лучше htop (apt install htop) и смотрите какой процесс (в первых рядах) “ест” больше всего ресурсов CPU.
В htop можно выбрать процесс клавишами вверх-вниз и кнопкой F9 его остановить, послав необходимый сигнал (вплоть до -9). Но если пойти классическим путем, то читаем дальше.
Например, наш процесс зовут rsync. По имени его можно остановить так:
$ sudo killall -9 rsync
Это принудительный вариант остановки процесса. При том, если у Вас запущено несколько процессов с таким именем, будет завершен только один. Если необходимо “прибить” определенный один из нескольких, лучше это сделать с помощью PID. Он указан в самом левом столбце top. Если PID у нас 342, то сделаем так:
$ sudo kill -9 342
Еще можно узнать PID процесса с помощью команды pidof:
$ sudo pidof rsync
342
Следовательно, если в системе нет killall, то можно поступить так:
Зависла программа. Решаем зависание linux. Команды kill, killall, pkill, xkill.
$ sudo kill -9 `pidoff rsync`
Источник: unlix.ru
Как завершить процесс в Linux.
В предыдущей статье «процессы linux» мы узнали как можно посмотреть запущенные процессы в linux-системах и их разновидности. Сегодня познакомимся с вопросом «как остановить процесс в Linux«.
В Linux доступно несколько сигналов, которые можно использовать для прерывания, завершения или приостановки процессов.
Для этого нам поможет команда kill, которая имеет свои ключи и сигналы.
Для начала познакомимся с ключом:
kill -l
который выведет таблицу — это сигналы, более 60 штук.
Когда мы даем команду kill, то систему посылает сигнал завершить процесс. Нас интересуют всего два сигнала из шестидесяти: SIGTERM (15) и SIGKILL (9).
SIGKILL (9) — Всегда прекращает выполнение процесса. Скажем так, аварийное завершение работы процесса, без сохранения важных данных.
SIGTERM (15) — Требование закончить процесс (программное завершение). Данный сигнал может не завершить процесс по каким-либо причинам, но при возможности завершения процесса он делает это аккуратно, последовательно, для сохранения необходимых данных.
Здесь можно сделать вывод, что kill -9 нужно выполнять только в крайних случаях.
Пользователь под root может закрыть все процессы всех пользователей, но другие пользователи могут закрыть только те процессы, которые были запущены от его имени.
Теперь рассмотрим примеры:
1. Выводим список процессов командой:
ps -aux
, после чего видим подробную информацию о процессах в том числе PID, имя процесса.
2.
kill 1422 — данная команда завершит процесс под PID 1422.
также можно завершить сразу несколько процессов (1422, 1378. 1655):
Как убить процесс в линукс
kill 1422 1378 1655 kill PID1 PID2 PID3
если после данной команды процесс не завершился, то вводим команду с сигналом -9
kill -9 1422 kill -9 PID
после чего, процесс принудительно завершится.
Команда pkill позволяет завершить процесс по его имени. Например закроем процесс apache2:
pkill apache2 pkill
Командой killall мы можем закрыть все экземпляры процесса, например:
killall opera
Вы можете проверить список процессов с похожим названием, используя лишь часть имени:
pgrep -l chr
Эта команда выведет список процессов с соответствующим ID процесса.
Как убить процесс в Linux с помощью команды killall.
Основное различие между killall и kill заключается в том, что killall может завершить процесс по имени, в то время как команда kill использует pid.
Пример такой команды:
killall chrome
Команда напоминает pkill. Однако killall использует точное соответствие имени, а pkill может убить процесс, сопоставив паттерн. Это одна из причин, по которой killall безопаснее, чем pkill.
Ещё одно отличие – это корневой пакет, к которому принадлежат команды. В Linux, killall принадлежит пакету psmisc. С другой стороны, такие команды, как ps, top, kill, pkill, принадлежат пакету procps.
Кроме того, killall можно настроить для завершения процессов на основе временных меток. Например, если вы хотите убить процесс, который работал менее 40 минут, вы можете использовать:
killall -y 40m []
Вы также можете использовать следующие параметры вместе с командой killall:
- s – секунды
- m – минуты
- h – часы
- d – дни
- w – недели
- M – месяцы
- y – годы
Источник: adminwin.ru
Как остановить процесс в Linux?
Бывают моменты, когда процесс в вашей системе Linux начинает вести себя странно, и вы, как администратор, должны остановить его на благо всей системы. Следующие утилиты помогут вам найти процесс и остановить его. Прежде чем мы продолжим, как мы знаем, каждый процесс Linux имеет идентификацию процесса (PID), и нам нужно будет найти конкретный интересующий PID. Для этого мы можем использовать следующие инструменты.
Использование команды ps
Эта команда сообщает о снимке текущего процесса.
Чтобы перечислить все процессы, просто запустите
Чтобы отфильтровать ваш вывод, вы можете использовать каналы, чтобы добраться до нужного вам процесса, например
$ ps aux | Grep Apa
Это перечислит все процессы, которые имеют вышеуказанные буквы в именах своих процессов. Здесь вы можете сузить и получить точный PID вашего процесса.
В качестве замены в вашем арсенале команд вы также можете использовать pidof или pgrep следующим образом
Это вернёт PID процесса 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 убивает его по имени, как показано ниже.
Для получения дополнительных опций запустите:
Убить процесс в Linux с помощью команды killall
Команда killall убивает процессы по их именам, как указано выше. Просто сделайте так:
$ killall httpd
$ man killall
Убить процесс в Linux с помощью команды pkill
Сигнальные процессы, основанные на имени и других атрибутах
pkill работает аналогично killall. Его синтаксис так же прост, как:
$ pkill [параметры] шаблон
pkill отправляет сигналы процессам на основе имени и других атрибутов.
Использование pkill очень простое, если вы знаете имя процесса для передачи команды и имя процесса, как показано ниже. По умолчанию он использует сигнал SIGTERM, но при желании его можно изменить.
Все параметры команды:
Опции:
– , –signal сигнал для отправки (номер или имя)
-e, –echo показать что убито
-c, –count количество совпадающих процессов
-f, –full использовать полное имя процесса для соответствия
-g, –pgroup совпадает с перечисленными идентификаторами группы процессов
-G, –group соответствуют реальным идентификаторам группы
-i, –ignore-case соответствие без учета регистра
-n, –newest выбрать последний запущенный
-o, –oldest выберите недавно начатый
-P, –parent соответствуют только дочерним процессам данного родителя
-s, –session совпадают идентификаторы сеанса
-t, –terminal совпадают с помощью управляющего терминала
-u, –euid совпадают по эффективным идентификаторам
-U, –uid совпадают с реальными идентификаторами
-x, – точное совпадение с именем команды
-F, –pidfile читать PID из файла
-L, –logpidfile не удается, если файл PID не заблокирован
–ns соответствует процессам, которые принадлежат одному и тому же пространству имен как –nslist список, для которых будут рассматриваться пространства имен опция –ns.
Доступные пространства имен: ipc, mnt, net, pid, user, uts
-h, –help показать эту справку и выйти
-V, –version вывести информацию о версии и выйти
Убить процесс в Linux с помощью команды top
Вы можете использовать команду top, чтобы завершить процесс во время его интерактивного сеанса.
Чтобы убить процессы прямо из «верхнего» интерфейса, нажмите «k». Он попросит вас PID процесса, чтобы остановить. Введите PID и нажмите ввод – он использует –
По умолчанию используется сигнал SIGTERM, как показано ниже. Просто нажмите Enter ещё раз, и top сделает все остальное.
Теперь вы знаете, как убить этот поддельный или надоедливый процесс Linux, используя простые инструменты Linux, которые обычно предустанавливаются практически во всех дистрибутивах. Спасибо, что прочитали статью.
Источник: mega-obzor.ru