以下命令在本地终端中起作用:
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通并且其他命令也成功。
答案 0 :(得分:1)
您需要对管道进行转义以使它们传递给ssh
命令,而不是由本地外壳程序执行,否则ps aux
之后的所有内容都将在本地计算机上执行。
ssh -o ConnectTimeout=6 john@remote-pc ps aux \| grep "script.py" \| awk {\'print $2\'} \| xargs kill -2