Как убить процессы с помощью Linux
Время от времени программа зависает, и в этом случае вам нужен способ ее убить. 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 также продолжает жить.