如何使用xargs将参数作为sudo传递给终端shell中的给定程序

jc3wubiy  于 2023-02-13  发布在  Shell
关注(0)|答案(2)|浏览(174)

我想杀死一系列进程如下:(rg是grep的替代)

ps -aux | rg "some_procs" | awk '{print $2}' | xargs kill -9

但它引发了一个错误消息显示我没有权限。我也不能添加sudo后xargs或xargs后。(似乎这将导致xargs分配argus到sudo而不是杀死)。我如何使用sudo在这个管道链接杀死这些进程?

pbgvytdp

pbgvytdp1#

ps -aux | rg "mytmp" | awk '{print $2}' | xargs sudo kill -9

这个命令起作用了。

mwkjh3gx

mwkjh3gx2#

除了the answer之外,如果您使用的是GNU/Linux系统,您还可以使用pkill,因此

sudo pkill some_procs

另外请注意,否则,您可以将许多PID传递给kill OK。您不需要所有ps默认字段,而只需要PID和name进行过滤。最后,您可以跳过rg部分,因为您可以直接在awk中执行此操作。

sudo kill -9 $(ps -o pid,args | awk '$2 ~ /some_procs/ {$1}')

相关问题