nonsudo 杀死匹配字符串的进程

nonsudo 杀死匹配字符串的进程

我正在尝试编写一个命令来终止与字符串匹配的所有进程。我有执行权限,kill -9但是当我尝试执行时,pkill -f string我得到了operation not permitted

这是我到目前为止所拥有的:

 ps aux  | grep -E 'python2|python3'

这会获取所有 python 进程的所有 PID。然而,我的 sed 和 grep 魔法还不足以解析出要执行的 pid:

kill -9 | <sed magic> | grep -E 'python2|python3'

有人可以帮助实现上述魔法吗?

答案1

pgrep "$expression" | xargs kill -9

这将用于pgrep搜索与指定进程名称匹配的 PID,然后将这些 PID 踢出kill执行。

也就是说,kill -9永远不应该将其作为例行公事进行。进程应设计为处理TERM(15) 信号并正确地自行清理。

另外,请注意,您只能向您拥有的进程发送信号(如果您不是超级用户),因此,如果您匹配任何不属于您的进程并尝试向它们发送信号,您将受到正确的警告。

相关内容