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

Другие вопросы по тегам