希望使用kill -9
而不是killall
使用进程名称。
有什么方法可以得到grep
给awk
定进程名的 pid 然后将其杀死吗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
了解各种 kill 命令以及可用信号的概述。man killall
man pkill
man 7 signal