Site icon ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Суббота, 27 декабря, 2025

Принудительное завершение процесса в Linux с помощью команд Top, Kill, Pkill, Killall и Xkill

Принудительное завершение процесса в Linux с помощью команд Top, Kill, Pkill, Killall и Xkill

Если процесс перестаёт отвечать на запросы и потребляет слишком много системных ресурсов, значит, пришло время его завершить.

В Windows любой процесс можно легко завершить с помощью диспетчера задач. В Linux у большинства процессов есть собственный способ завершения. Некоторые можно завершить с помощью клавиши q на клавиатуре, а для некоторых используется команда exit.

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

В это время вы можете принудительно завершить процесс с помощью команд topkillpkillkillall и xkill в Linux.

 

Как завершить процесс?

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

 

Ознакомьтесь с информацией ниже, чтобы понять, какие типы процессов можно завершить.

 

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

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

kill -l

 

Обычным пользователям не нужно беспокоиться обо всех этих сигналах. Вам нужно знать только о сигналах 1, 9 и 15.

Название сигнала Значение сигнала Поведение
SIGHUP 1 Отбой
SIGKILL 9 Сигнал уничтожения
SIGTERM 15 Прекратить

 

 

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

В Linux самый эффективный и простой способ завершить любой процесс — использовать команду top.

Команда top выводит список всех запущенных процессов в вашей системе с указанием их PID, объёма используемой памяти и загрузки ЦП.

top

 

Чтобы завершить любой процесс в интерфейсе top, нажмите кнопку k на клавиатуре и введите PID процесса.

 

Перечислите все запущенные процессы Linux.

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

Команды pidofpgrep, и ps — самый эффективный и простой способ узнать PID любого конкретного процесса, помимо всех остальных команд, таких как top в Linux.

 

Команда pidof

Чтобы узнать все запущенные процессы вместе с их PID без каких-либо изменений в выходных данных, подобных top команде, выполните команду pidof вместе с именем процесса.

pidof nano

 

Выше вы можете найти PID редактора nano, который равен 7153. Его можно использовать для завершения работы редактора.

 

Команда pgrep

Команда pgrep — это сложный способ поиска любого PID. Для выполнения базовой работы необходимо знать регулярные выражения.

Чтобы вернуть PID, можно использовать pgrep с именем процесса без каких-либо флагов, как показано ниже.

pgrep nano

 

Команда ps

Команда ps аналогична команде top, за исключением того, что она не требует взаимодействия или колебаний. Можно добавить флаги для извлечения определённой информации вместе с командой ps.

ps <параметры>

 

Ниже приведены наиболее часто используемые флаги, а также команда ps .

 

ps aux

 

Вы можете передать команду grep вместе с ps для вывода информации о конкретных процессах с идентификатором PID.

ps aux | grep nano

 

Ниже описано поведение этой команды.

Завершение процесса в Linux с помощью команд Kill, Killall, Pkill и Xkill

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

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

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

 

 

Не знаете PID или имя процесса? Тогда xkill — лучший вариант для вас, чтобы завершить любой процесс одним щелчком мыши.

 

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

Команда kill может завершить процесс, если вы знаете его PID. По умолчанию она отправляет процессу сигнал SIGHUP или SIGTERM для завершения работы.

Замените PID на номер вашего процесса:

kill 7394

 

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

Не забудьте заменить PID:

kill -SIGKILL 7406

 

или

kill -9 7406

 

Можно использовать как имя сигнала, так и его значение; оба варианта работают одинаково.

 

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

Если вы не знаете PID процесса, можно использовать команду killall. Команда killall отправляет процессу сигнал SIGHUP или SIGTERM и может завершить все процессы с одинаковым именем.

Например, если вы запустили несколько процессов nano в двух разных терминалах. Тогда команда killall завершит оба процесса nano одновременно, как показано ниже.

killall nano

 

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

Не забудьте заменить название процесса

killall -SIGKILL nano

 

или

killall -9 nano

 

Можно использовать имя сигнала или его значение; оба варианта работают одинаково.

 

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

Команда pkill аналогична команде pgrep; она отправляет процессу сигнал SIGHUP или SIGTERM и завершает все процессы с таким же именем.

Например, если вы запустили несколько процессов gedit. То команда pkill завершит все процессы gedit одновременно, как показано ниже.

pkill gedit

 

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

Не забудьте заменить имя процесса:

pkill -SIGKILL gedit

 

или

pkill -9 gedit

 

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

 

Как завершить процесс, из-за которого всё зависает и я не могу открыть терминал?

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

 

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

Команда xkill используется для завершения процессов на X-серверах без указания PID или имени процесса. Она принудительно закрывает приложение с помощью сигнала SIGKILL, поэтому все несохранённые приложения закрываются без сохранения.

Введите приведённую ниже команду в терминале, чтобы начать завершение приложений.

xkill

 

После выполнения команды обычный курсор превратится в стрелку с крестиком ❌.

Наведите курсор на приложение, которое хотите закрыть, и нажмите кнопку left-click.

Выше вы можете видеть, что после выполнения команды xkill курсор в виде стрелки превратился в курсор в виде креста. После этого мы просто навели курсор на браузер Firefox и нажали left-clicked для закрытия.

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

 

Выводы

Exit mobile version