- Как убить процесс в Linux
- Сигналы отключения системы
- Завершение процессов с помощью команды kill
- Завершение процессов с помощью команды killall
- Завершение процессов с помощью команды pkill
- Выводы
- Как убить процесс в Linux
- How to Kill a Process in Linux
- В этой статье мы покажем вам , как использовать kill , killall и pkill команды для завершения процесса в Linux.
- Сигналы убийства системы
- Завершение процессов с помощью kill команды
- Завершение процессов с помощью killall команды
- Завершение процессов с помощью pkill команды
- Вывод
- Как убить процесс на любом дистрибутиве Linux
- Типы командных сигналов KILL
- Права, необходимые для завершения процесса
- Синтаксис команды KILL
- Примеры команд Kill
- Шаг № 1: Найти PID процесса.
- Шаг № 2: Убить процесс с помощью PID.
- Команда Killall C
- Как убить все процессы пользователя в Linux
- Как завершить все процессы пользователя?
Как убить процесс в Linux
Вы когда-нибудь сталкивались с ситуацией, когда вы запускали приложение, и внезапно, когда вы его использовали, оно перестает отвечать и неожиданно дает сбой? Вы пытаетесь запустить приложение еще раз, но ничего не происходит, потому что исходный процесс приложения никогда не завершается полностью.
Что ж, в какой-то момент это случилось со всеми нами, не так ли? Решение состоит в том, чтобы прервать или убить процесс приложения. Но как?
К счастью, в Linux есть несколько утилит, которые позволяют убивать ошибочные процессы.
В этой статье мы покажем вам, как использовать команды kill , killall и pkill для завершения процесса в Linux.
Основное различие между этими инструментами заключается в том, что kill завершает процессы на основе идентификатора процесса (PID), а команды killall и pkill завершают запущенные процессы на основе их имен и других атрибутов.
Обычные пользователи могут убивать свои собственные процессы, но не те, которые принадлежат другим пользователям, в то время как пользователь root может убивать все процессы.
Сигналы отключения системы
kill , killall и pkill отправляют заданный сигнал указанным процессам или группам процессов. Если сигнал не указан, каждый инструмент отправляет 15 ( TERM ).
Наиболее часто используемые сигналы:
- 1 (-HUP): перезагрузить процесс.
- 9 (-KILL): убить процесс.
- 15 (-TERM): чтобы корректно остановить процесс.
Сигналы можно указать тремя разными способами:
- используя число (например, -1)
- с префиксом «SIG» (например, -SIGHUP)
- без префикса «SIG» (например, -HUP).
Используйте параметр -l чтобы -l список всех доступных сигналов:
Описанные ниже шаги будут работать во всех дистрибутивах Linux.
Завершение процессов с помощью команды kill
Чтобы сначала завершить процесс с помощью команды kill , вам нужно найти PID процесса. Вы можете сделать это с помощью различных команд, таких как top , ps , pidof и pgrep .
Допустим, браузер Firefox перестал отвечать, и вам нужно убить процесс браузера. Чтобы узнать идентификатор процесса, используйте команду pidof :
Команда распечатает все процессы Firefox:
Как только вы узнаете, что Firefox обрабатывает PID, чтобы завершить их все, отправьте сигнал TERM :
Завершение процессов с помощью команды killall
Команда killall завершает работу всех программ, соответствующих указанному имени.
Используя тот же сценарий, что и раньше, вы можете убить процесс Firefox, набрав:
killall принимает несколько параметров, таких как отправка сигналов процессам, принадлежащим данному пользователю, сопоставление имен процессов с регулярными выражениями и время создания. Вы можете получить список всех опций, набрав killall (без аргументов) на вашем терминале.
Например, чтобы завершить все процессы, запущенные от имени пользователя sara, вы должны выполнить следующую команду:
Завершение процессов с помощью команды pkill
pkill завершает процессы, соответствующие шаблону, указанному в командной строке:
Название процесса не обязательно должно быть точным.
С помощью pkill вы также можете отправить сигнал процессам, принадлежащим данному пользователю. Чтобы убить только процессы firefox, принадлежащие пользователю sara, вы должны ввести:
Выводы
Завершение неотвечающих программ с помощью команд kill , killall и pkill — простая задача. Вам нужно только знать имя процесса или PID.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Источник
Как убить процесс в Linux
How to Kill a Process in Linux
В этой статье мы покажем вам , как использовать kill , killall и pkill команды для завершения процесса в Linux.
Сталкивались ли вы с ситуацией, когда вы запускали приложение, и вдруг, когда вы используете приложение, оно перестает отвечать на запросы и неожиданно вылетает? Вы пытаетесь запустить приложение снова, но ничего не происходит, потому что исходный процесс приложения никогда не завершается полностью.
Ну, это случилось со всеми нами в какой-то момент, не так ли? Решение состоит в том, чтобы прекратить или убить процесс приложения. Но как?
К счастью, в Linux есть несколько утилит, которые позволяют убивать ошибочные процессы.
Основное различие между этими инструментами заключается в том, что они kill завершают процессы на основе идентификатора процесса (PID), killall а pkill команды и завершают запущенные процессы на основе их имен и других атрибутов.
Обычные пользователи могут уничтожать свои собственные процессы, но не те, которые принадлежат другим пользователям, в то время как пользователь root может уничтожать все процессы.
Сигналы убийства системы
kill , killall И pkill послать данный сигнал к определенным процессам или группам процессов. Когда сигнал не указан, каждый инструмент отправляет 15 ( TERM ).
Наиболее часто используемые сигналы:
- 1 (-HUP): перезагрузить процесс.
- 9 (-KILL): убить процесс.
- 15 (-TERM): изящно остановить процесс.
Сигналы могут быть указаны тремя различными способами:
- используя число (например, -1)
- с префиксом «SIG» (например, -SIGHUP)
- без префикса «SIG» (например, -HUP).
Используйте -l опцию для перечисления всех доступных сигналов:
Описанные ниже шаги будут работать на всех дистрибутивах Linux.
Завершение процессов с помощью kill команды
Чтобы прервать процесс kill сначала командой, вам нужно найти PID процесса. Вы можете сделать это , используя различные команды , такие как top , ps , pidof , и pgrep .
Допустим, браузер Firefox перестал отвечать на запросы, и вам нужно убить процесс браузера. Чтобы найти идентификатор процесса, используйте pidof команду:
Команда напечатает все процессы Firefox:
Как только вы узнаете, что Firefox обрабатывает PID для завершения, все они посылают TERM сигнал:
Завершение процессов с помощью killall команды
Команда killall завершает все программы, которые соответствуют указанному имени.
Используя тот же сценарий, что и раньше, вы можете убить процесс Firefox, набрав:
killall принимает несколько параметров, таких как отправка сигналов процессам, принадлежащим данному пользователю, сопоставление имен процессов с регулярными выражениями и время создания. Вы можете получить список всех опций, набрав killall (без каких-либо аргументов) на своем терминале.
Например, чтобы завершить все процессы, запущенные от имени пользователя «sara», вы должны выполнить следующую команду:
Завершение процессов с помощью pkill команды
pkill завершает процессы, которые соответствуют шаблону, указанному в командной строке:
Название процесса не должно быть точным совпадением.
С pkill его помощью вы также можете отправить сигнал процессам, которые принадлежат данному пользователю. Чтобы убить только процессы firefox, принадлежащие пользователю «sara», вы должны набрать:
Вывод
Завершение работы не отвечающих программ с помощью команд kill , killall and pkill — простая задача. Вам нужно только знать имя процесса или PID.
Источник
Как убить процесс на любом дистрибутиве Linux
Если вы являетесь новым пользователем Linux любого дистрибутива, вы, вероятно, не знаете, как использовать одну из основных команд, которая помогает нам завершать запущенные процессы.
Операционные системы, основанные на Unix, включают команду Kill, полезную для уничтожения тех процессов, которые застряли или которые мы больше не хотим запускать без перезагрузки нашего компьютера или сервера.
Команда Kill отправляет сигналы разных типов, которые позволяют завершать процессы или группы процессов.
Если тип сигнала не указан, будет отправлен сигнал TERM, который является параметром по умолчанию.
Примечание для пользователей среднего уровня: Команда может быть внешней (расположена в /bin/kill) или внутренней (более поздние оболочки) в зависимости от типа оболочки Linux.
В любом случае, его использование очень похоже.
Типы командных сигналов KILL
Наиболее распространенными типами сигналов являются следующие
- SIGHUP: будет использоваться, если консоль не отвечает или если контроль над процессом был потерян. Этот сигнал используется для перезагрузки файлов конфигурации процесса, а также возможных файлов журнала того же самого.
- SIGKILL: сигнал, чтобы остановить процесс. Это последняя надежда завершить процесс, когда он не отвечает. Это не чистый способ завершить процесс, и поэтому никакие данные не будут сохранены.
- SIGTERM: Это самый быстрый способ закрыть процесс. Это сигнал по умолчанию.
Права, необходимые для завершения процесса
- Вы можете завершить только свои собственные процессы.
- Пользователь root сможет убить все процессы, системные процессы и любых других пользователей.
Синтаксис команды KILL
Если вы хотите завершить несколько процессов одновременно:
Как видите, сначала нужно ввести имя команды, затем ее параметры, затем тип сигнала и, наконец, PID или PIDы процесса, который вы хотите завершить.
Примеры команд Kill
Давайте рассмотрим пример, когда вы хотите завершить процесс Apache httpd:
Шаг № 1: Найти PID процесса.
Первое, что вы должны сделать, когда хотите прекратить любой процесс, – это найти его PID.
Для этого вы можете использовать команды ps или pidof.
Эта команда выдаст вам PID, в данном случае это 22298, который является Идентификатором процесса, хотя в результате вы можете получить список идентификаторов, поскольку у процесса может быть несколько экземпляров.
Вы также можете запустить следующую команду, чтобы найти PID:
Шаг № 2: Убить процесс с помощью PID.
PID 22298 – это тот, который назначен процессу httpd.
Чтобы завершить процесс и закрыть сервер Apache, вам нужно передать PID:
Это завершит процесс с PID 22298, что вы можете проверить, если вы снова используете команду pidof или команду ps
Если мы не будем указывать какой-либо сигнал сигнал SIGTERM (-15) будет использоваться по умолчанию, поэтому следующие команды равны:
Если сигнала SIGTERM (-15) недостаточно, например, когда сокеты Apache открыты, мы можем использовать сигнал SIGKILL (-9):
Этот сигнал гарантирует, что процесс будет завершен, прерывая выполнение любой задачи.
Если в Apache есть несколько запущенных процессов, мы можем устранить их все сразу:
Команда Killall C
В Linux у нас также есть команда killall для уничтожения процессов по имени, хотя эта команда Unix имеет другую функцию.
Это закроет все экземпляры процесса Apache httpd в Linux.
Однако в Unix эта команда завершит все процессы, поэтому лучше не запутаться при ее использовании.
Знаете ли вы какой-либо другой способ убить процессы в Linux или столкнулись с проблемами, используя любую из приведенных выше команд?
Источник
Как убить все процессы пользователя в Linux
Как мы знаем, Linux — многопользовательская ОС, поэтому с каждым пользователем могут быть связаны его собственные процессы. Такое разделение существует в целях безопасности. Запуская ту или иную программу от имени непривилегированного пользователя, ОС снижает риски несанкционированного проникновения и риски повреждения системных файлов.
В этой статье мы расскажем о том, как завершить все запущенные процессы конкретного пользователя.
Как завершить все процессы пользователя?
Для начала сформируем перечень всех процессов всех пользователей. В терминале Linux выполним следующую команду:
Как видно на скриншоте, имеются процессы, связанные с тремя пользователями (root, mint1 и mint). Допустим, нам срочно понадобилось завершить все процессы пользователя mint1.
Здесь следует немного подробнее остановиться на самом понятии процесса в Linux. Процесс – программа, запущенная в виртуальном адресном пространстве. Каждый процесс имеет свой уникальный номер или идентификатор — PID (Process Identificator). Работая с процессами, операционная система идентифицирует процессы именно по PID.
Для того, чтобы убить ненужные процессы, достаточно убить все PID процессов конкретного пользователя (в данном случае mint1). Для этого можно просто скопировать номера идентификаторов этого пользователя и ввести следующую команду:
sudo kill -9 3501 4333
Однако, количество PID может быть куда больше двух. Да и выполнить все действия вообще-то тоже можно с помощью одной команды, умещающейся в одну строку.
Например, используем конвейер и программу grep ( символ | обозначает передачу результатов выполнения первой команды второй команде по конвейеру):
ps au | grep -e ‘^mint1’
С помощью grep были выбраны все процессы пользователя mint1. Далее необходимо из второй колонки слева выбрать все PID. Сделаем это с помощью программы awk, добавив, соответственно, ещё один конвейер:
ps au | grep -e ‘^mint1’ | awk ‘
Теперь нужно убить полученные значения PID. Опять добавим конвейер (в данном и последующих примерах все команды выполняются от имени суперпользователя root) и выполним группу команд:
ps au | grep -e ‘^mint1’ | awk ‘
С помощью такой конвейеризованной группы команд мы завершили все процессы пользователя mint1.
Подобный конвейер можно было бы сформировать и так:
ps aux | awk ‘/^mint1/
Кроме того, для того, чтобы убить все процессы пользователя в Linux, можно воспользоваться также следующими командами:
killall -u mint1
Однако и это ещё не всё. Нужно ещё проверить наличие процессов, связанных с пользователем mint1, и их состояние. Сделаем это с помощью команды:
Как видите, процессы, связанные с пользователем mint1, отсутствуют. Способов убить все процессы пользователя в Linux достаточно много, мы показали лишь некоторые из них.
Источник