Время от времени программа зависает, и в этом случае вам понадобится метод для ее уничтожения. Linux предлагает несколько подходов для принудительного завершения программ из оболочки.
Как использовать команду killall
Команда killall убивает все процессы по имени. Это означает, что если у вас запущены три версии одной и той же программы, команда killall убивает все три.
Например, откройте небольшую программу, такую как просмотрщик изображений. Теперь откройте еще одну копию того же средства просмотра изображений. Для этого примера мы выбрали Xviewer, который является клоном Eye Of Gnome .
Теперь откройте терминал и введите следующую команду:
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
Ч в приведенном выше команде означает часы-эту команда убивает процессы , запущенные в течение четырех часов или дольше.
Укажите любой из следующих временных этапов:
- с : секунды
- м : минуты
- ч : часы
- д : дни
- Вт : недели
- М : месяцы
- у : лет
В качестве альтернативы, чтобы убить команды, которые только начали выполняться, используйте следующий ключ:
killall -y h4
На этот раз команда killall уничтожит все программы, работающие менее 4 часов.
Не говори мне, когда процесс не убит
По умолчанию, если вы попытаетесь убить программу, которая не запущена, вы получите следующую ошибку:
имя программы: процесс не найден
Если вы не хотите, чтобы вам сообщили, что процесс не найден, используйте следующую команду:
killall -q
Использование регулярных выражений
Вместо указания имени программы или команды укажите регулярное выражение, чтобы все процессы, соответствующие этому регулярному выражению, были закрыты командой killall.
Чтобы использовать регулярное выражение, используйте следующую команду:
killall -r <выражение>
Убить программы для указанного пользователя
Чтобы убить программу, принадлежащую конкретному пользователю, используйте ключ -u :
killall -u <имя пользователя> <имя программы>
Опустить имя программы, чтобы завершить все процессы этого пользователя
Подождите, пока «killall», чтобы закончить
По умолчанию killall возвращается к терминалу, когда вы его запускаете, но вы можете заставить killall ждать, пока все указанные процессы не будут закрыты, прежде чем вернуть вас в окно терминала.
Запустите следующую команду:
killall -w
Если программа никогда не умирает, то killall также будет продолжать жить.