Поиск по сайту:
Чем короче формулировка теоремы, тем труднее ее доказательство (Неизв.).

Причины, по которым Kill не работает в Linux, как это решить?

13.08.2021
Причины, по которым Kill не работает в Linux, как это решить?

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

 

Команда “Kill”

Как упоминалось ранее, когда программа перестает отвечать и вы не можете ее перезапустить, вам нужно новое решение. В этот момент пользователи Windows откроют свой диспетчер задач, чтобы избавиться от зависшего процесса. В Linux нет встроенного диспетчера задач, но есть команда, которую мы можем использовать для достижения того же эффекта, что и функция «Завершить задачу» в Windows. Эта команда известна как команда Kill, и мы можем использовать ее по-разному, чтобы помочь нам и системе избавиться от поврежденных экземпляров.

 

Синтаксис Kill

Синтаксис команды Kill прост.

$ kill -- [signal] PID

Здесь необходимо пояснить две вещи, а именно сигнал и PID. Давайте рассмотрим их по очереди и узнаем, как они влияют на функциональность этой команды.

 

Параметр сигнала

Во-первых, это сигнал. Сигналы – это простые цифры, обозначающие имя. Команда Kill может выполнять разные задачи в зависимости от подаваемого вами сигнала. Пользователи могут использовать более 60 различных значений сигналов, каждый из которых выполняет отдельные конкретные задачи. Чтобы просмотреть все эти параметры, вы можете использовать следующую команду:

$ Kill -l

 

Как видите, всего доступно 64 варианта.

Читать  Аргументы командной строки в Linux

Хотя существует более 60 различных сигналов, ниже описаны два из наиболее распространенных.

  1. SIGKILL (9): Как следует из названия, эта команда полностью завершает процесс без сохранения данных программы. Эта команда используется только в крайнем случае.
  2. SIGTERM (15): генерирует сигнал завершения, который закрывает программу безопасным способом. Это также сигнал по умолчанию.

Сигналы могут быть дополнительно определены 3 различными способами, описанными ниже.

1. Мы можем указать сигнал соответствующей цифрой:

$ kill -9 PID

 

2. Мы можем указать сигнал по его имени:

$ kill -SIGKILL PID

 

3. Мы можем указать сигнал без SIG в названии.

$ kill -kill PID

 

Все эти команды выполняют одну и ту же задачу.

 

Параметр PID

PID – это идентификационный номер процесса. В Linux и Unix-подобных системах каждому процессу, выполняемому системой, присваивается идентификационный номер процесса (далее именуемый PID). Чтобы убить процесс, нужно знать его PID. Чтобы найти PID для данного процесса, мы можем использовать следующие команды.

$ pidof [process name]

$ pgrep [process name]

 

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

Теперь, когда вы поняли синтаксис, мы можем выполнить команду Kill. В качестве примера мы будем использовать Kill on Thunderbird Mail – предустановленную программу в Ubuntu. Сначала мы определим его PID, а затем завершим процесс с помощью сигнала SIGTERM.

Сначала откройте командный терминал для Ubuntu. После этого выполните следующую команду:

$ pgrep thunderbird

 

Как вы теперь знаете, PID Thunderbird Mail запускает следующую команду, чтобы завершить процесс.

$ kill -SIGTERM 7075

Или

$ kill -15 7075

 

Читать  Как использовать AUR с Arch Linux

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

$ kill -[signal] PID1 PID2…..PIDN

 

Более того, пользователи могут завершить процесс, используя команды kill и pidof/pgrep в одной строке. Синтаксис такой договоренности:

$ kill -[signal] $pgrep [process name]

Причины, по которым Kill может не работать

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

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

Чтобы избавиться от этой проблемы, вы можете использовать сигнал SIGKILL для полного завершения процесса. Сигнал SIGKILL позволяет системе взять дело в свои руки. Так что, если вы встретите такую ​​неприятную ситуацию, вы всегда можете выйти из нее с помощью сигнала SIGKILL или -9.

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

 

Команда Killall

Команда Kill встроена в Linux и другие операционные системы на базе Unix, но команда Killall предназначена только для пользователей Linux. Эта команда позволяет пользователю завершить процесс, используя имя процесса. Нет необходимости находить PID процесса. Синтаксис команды Killall:

$ killall -[signal] [process name]

Эта команда может служить хорошей альтернативой, если по какой-то причине Kill не работает у вас даже после предписанных решений.

Читать  Как перечислить все запущенные службы в Linux с помощью командной строки

 

Вывод

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
В этой статье будет рассмотрено руководство по использованию функций «Eval»…

Спасибо!

Теперь редакторы в курсе.