Как убить процессы с помощью Linux

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

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

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

Как использовать команду killall

Команда killall убивает все процессы по имени. Это означает, что если у вас есть три версии одной и той же программы, команда killall уничтожит все три.

Например, откройте небольшую программу, такую ​​как просмотрщик изображений. Теперь откройте еще одну копию того же средства просмотра изображений. Для этого примера мы выбрали Xviewer, который является клоном Eye Of Gnome.

Теперь откройте терминал и введите следующую команду:

убить всех

Например, чтобы убить все экземпляры Xviewer, введите следующее:

killall xviewer

Оба экземпляра программы, которую вы выбрали для уничтожения, будут закрыты.

Убить точный процесс

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

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

killall -e

Игнорировать случай при убийстве программ

Чтобы убедиться, что команда killall игнорирует регистр имени программы, который вы указали, используйте следующую команду:

killall -I
killall --ignore-case

Убить все программы в одной группе

При запуске команды, такой как следующая, она создаст два процесса:

ps -ef | Меньше

Одна команда предназначена для части ps -ef, в которой перечислены все запущенные процессы в вашей системе, а выходные данные переданы в команду less.

Обе программы принадлежат к одной группе, которая является Bash.

Чтобы убить обе программы одновременно, вы можете запустить следующую команду:

killall -g

Например, чтобы убить все команды, запущенные в оболочке bash, выполните следующее:

killall -g bash

Кстати, для просмотра списка всех запущенных групп выполните следующую команду:

пс-г

Получите подтверждение перед убийством программ

Очевидно, команда killall — довольно мощная команда, и вы не хотите случайно убить неправильные процессы.

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

killall -i

Убить процессы, которые выполнялись в течение определенного количества времени

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

Вы можете убить команду следующим образом:

killall -o h4

H в приведенной выше команде обозначает часы.

Вы также можете указать любой из следующих:

  • с — секунды
  • м — минуты
  • ч — часы
  • д — дни
  • W — недели
  • М — месяцы
  • у — лет

В качестве альтернативы, если вы хотите убить команды, которые только что начали выполняться, вы можете использовать следующий ключ:

killall -y h4

На этот раз команда killall уничтожит все программы, работающие менее 4 часов.

Не говори мне, когда процесс не убит

По умолчанию, если вы попытаетесь убить программу, которая не запущена, вы получите следующую ошибку:

имя программы: процесс не найден

Если вы не хотите, чтобы вам сообщили, что процесс не найден, используйте следующую команду:

killall -q

Использование регулярных выражений

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

Чтобы использовать регулярное выражение, используйте следующую команду:

killall -r

Убить программы для указанного пользователя

Если вы хотите уничтожить программу, запускаемую конкретным пользователем, вы можете указать следующую команду:

killall -u

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

Подождите, пока killall, чтобы закончить

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

Для этого выполните следующую команду:

killall -w

Если программа никогда не умирает, то killall также будет продолжать жить.

Сигналы Сигналы Сигналы

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

Однако есть и другие сигналы, которые вы можете отправить с помощью команды killall, и вы можете перечислить их с помощью следующей команды:

killall -l

Возвращенный список будет примерно таким:

  • HUP
  • INT
  • УВОЛИТЬСЯ
  • БОЛЬНОЙ
  • TRAP
  • ABRT
  • ВГД
  • BUS
  • FPE
  • УБИЙСТВО
  • USR1
  • SEGV
  • USR2
  • ТРУБЫ
  • ALRM
  • СРОК
  • STKFLT
  • CHLD
  • CONT
  • СТОП
  • ЦТП
  • TTIN
  • TTOU
  • УРГ
  • XCPU
  • XFSZ
  • VTALRM
  • PROG
  • Wynch
  • IO
  • PWR
  • SYS
  • НЕИСПОЛЬЗУЕМЫЙ

Этот список очень длинный. Чтобы прочитать, что означают эти сигналы, выполните следующую команду:

человек 7 сигнал

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

Другие способы убить программу

Есть 5 других способов убить приложение Linux.

Тем не менее, чтобы избавить вас от необходимости нажимать на ссылку здесь, есть раздел, показывающий, что это за команды и почему вы можете использовать эти команды вместо killall.

Первый — это команда kill. Команда killall, как вы видели, отлично подходит для уничтожения всех версий одной и той же программы. Команда kill предназначена для уничтожения одного процесса за раз и поэтому более целенаправленна.

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

Например, чтобы найти работающую версию Firefox, вы можете выполнить следующую команду:

ps -ef | grep firefox

Вы увидите строку данных с командой / usr / lib / firefox / firefox в конце. В начале строки вы увидите свой идентификатор пользователя и номер после того, как идентификатор пользователя является идентификатором процесса.

Используя идентификатор процесса, вы можете убить Firefox, выполнив следующую команду:

убить -9 

Другой способ убить программу — использовать команду xkill. Это обычно используется, чтобы убить плохо себя ведущие графические приложения.

Чтобы убить такую ​​программу, как Firefox, откройте терминал и выполните следующую команду:

Xkill

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

Другой способ убить процесс — использовать команду top Linux. Команда top выводит список всех запущенных процессов в вашей системе.

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

Ранее в этом разделе мы выделили команду kill, и она потребовала, чтобы вы нашли процесс с помощью команды ps, а затем уничтожили процесс с помощью команды kill. Это не самый простой вариант.

Во-первых, команда ps возвращает массу информации, которая вам не нужна. Все, что вы хотели, это идентификатор процесса. Вы можете получить идентификатор процесса проще, выполнив следующую команду:

pgrep firefox

Результатом вышеупомянутой команды является просто идентификатор процесса Firefox. Теперь вы можете запустить команду kill следующим образом:

убийство 

(Заменить фактическим идентификатором процесса, возвращаемым pgrep).

Однако на самом деле проще просто указать имя программы для pkill следующим образом:

Pkill Firefox

Наконец, вы можете использовать графический инструмент, такой как тот, который поставляется с Ubuntu, который называется System Monitor. Чтобы запустить «Системный монитор», нажмите супер ключ (Ключ Windows на большинстве компьютеров) и введите «sysmon» в строку поиска. Нажми на системный монитор значок, когда он появляется.

Системный монитор показывает список процессов. Чтобы завершить программу чистым способом, выберите ее и нажмите конец Клавиша внизу экрана (или нажмите CTRL+Е). Если это не работает, либо щелкните правой кнопкой мыши и выберите Убийство или нажмите CTRL+К на процесс, который вы хотите убить.

Ссылка на основную публикацию