将标志传递给 xargs

将标志传递给 xargs

我想使用以下命令杀死一堆进程:

sudo ps ax | grep node | awk '{print $1}' | xargs kill

但它给了我即使使用 sudo 也不允许的操作。

然后我kill -9对每个过程分别进行了尝试,结果成功了。

现在我的问题是如何-9通过 xargs 传递标志来杀死?

下界 xargs kill -9xargs -9 kill为我工作。

答案1

仅该管道中的第一个命令 ( ps ax) 以 root 身份运行。该行的其余部分(包括kill命令)将以普通非 root 用户身份运行。

要以 root 身份运行kill,您需要像这样运行:

ps ax | grep node | awk '{print $1}' | sudo xargs kill -9

或者

ps ax | grep node | awk '{print $1}' | xargs sudo kill -9

或者,如果您已pkill安装,则可以运行:

sudo pkill -9 node

答案2

你需要 sudo 来杀死。

ps ax | grep node | awk '{print $1}' | xargs sudo kill -9

相关内容