Skip to main content

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

Основы Linux: сигналы и управление процессами (Май 2025)

Основы Linux: сигналы и управление процессами (Май 2025)

:

Anonim

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

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

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

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

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

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

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

убить всех

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

killall xviewer

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

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

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

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

killall -e

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

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

killall -Ikillall --ignore-case

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

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

ps -ef | Меньше

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

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

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

killall -g

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

killall -g bash

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

ps -g

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

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

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

killall -i

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

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

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

killall -o h4

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

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

  • s - секунды
  • м - минуты
  • h - часы
  • d - дней
  • w - недели
  • M - месяцы
  • y - лет

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

killall -y h4

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

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

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

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

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

killall -q

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

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

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

killall -r

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

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

killall -u

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

Ждите, чтобы убить до конца

По умолчанию 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. В начале строки вы увидите свой идентификатор пользователя и номер после идентификатора пользователя ID процесса.

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

kill -9

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

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

Xkill

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

Другой способ убить процесс - это использовать верхнюю команду Linux. В верхней команде перечислены все запущенные процессы в вашей системе.

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

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

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

pgrep firefox

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

убийство

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

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

pkill firefox

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

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