Хотите использовать 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 для обзора доступных сигналов.