Хотите использовать kill -9 вместо killall
Ищу использовать kill -9
вместо killall
используя имя процесса.
Есть ли способ, которым я могу grep
или же awk
PID данного имени процесса / s затем убить его будет kill -9
?killall
терпит неудачу для меня много
Я ищу сценарий для многочисленных удаленных машин.
Имя процесса будет одним из трех.
Я хочу использовать что-то вроде:
sshpass -p 'password' ssh -n $user@$hostname "one liner to use kill -9"
Есть идеи?
1 ответ
-9
Аргумент, который вы упомянули, указывает сигнал kill
отправит к рассматриваемому процессу. По умолчанию SIGTERM (завершить приложение), 9 эквивалентно SIGKILL (уничтожить приложение немедленно и наиболее жестоко).
killall
принимает аргументы сигнала (например, -9
или же -KILL
Я предпочитаю символические имена над числами) тоже:
killall -KILL processname
В качестве альтернативы, есть pkill
, который убивает процессы, которые соответствуют заданному шаблону команды, который также принимает аргументы сигнала. Вы можете "просмотреть", что будет убито с помощью pgrep -a
, который перечисляет соответствующие совпадения, а не отправляет сигнал и убивает их:
pgrep -a processname
pkill processname
Если вы хотите сопоставить ваш шаблон с целой командой, включая ее аргументы, а не только с базовой командой, добавьте -f
переключатель:
pgrep -a -f something
pkill -f something
Для получения дополнительной информации проверьте соответствующие страницы справочника: man kill
, man killall
, man pkill
для различных команд убийства и man 7 signal
для обзора доступных сигналов.