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

click fraud protection

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

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

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

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

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

killall xviewer

Оба экземпляра программы закрываются.

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

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

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

killall -e

Игнорировать регистр при закрытии программ

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

killall -I
killall --ignore-case

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

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

ps -ef | меньше

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

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

killall -g

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

killall -g bash

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

пс -g

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

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

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

killall -i

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

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

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

killall -o h4

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

Укажите любой из следующих временных этапов:

  • s: секунды
  • м: минуты
  • час: часы
  • d: дней
  • ш: недели
  • M: месяцы
  • у: годы

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

killall -y h4

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

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

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

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

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

killall -q

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

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

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

killall -r 

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

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

killall -u 

Опустите имя программы, чтобы завершить все процессы этого пользователя.

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

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

Выполните следующую команду:

killall -w

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