为什么这不能杀死远程进程?

时间:2018-08-03 07:31:49

标签: linux remote-access kill-process

以下命令在本地终端中起作用:

ps aux | grep "script.py" | awk {'print $2'} | xargs kill -2

但是此命令不能远程运行:

ssh -o ConnectTimeout=6 john@remote-pc ps aux | grep "script.py" | awk {'print $2'} | xargs kill -2

...尽管远程计算机上的script.py属于john,但我们是ssh的用户。我可以ping通并且其他命令也成功。

1 个答案:

答案 0 :(得分:1)

您需要对管道进行转义以使它们传递给ssh命令,而不是由本地外壳程序执行,否则ps aux之后的所有内容都将在本地计算机上执行。

ssh -o ConnectTimeout=6 john@remote-pc ps aux \| grep "script.py" \| awk {\'print $2\'} \| xargs kill -2