为什么这不会杀死远程进程?
Why does this not kill remote process?
以下命令在本地终端中有效:
ps aux | grep "script.py" | awk {'print '} | xargs kill -2
但是这个命令不能远程工作:
ssh -o ConnectTimeout=6 john@remote-pc ps aux | grep "script.py" | awk {'print '} | xargs kill -2
...即使远程上的 script.py 属于 john,我们也是 ssh 用户。我能ping通,其他命令也能成功。
您需要对管道进行转义,以便将它们传递给 ssh
命令,而不是由您的本地 shell 执行,否则 ps aux
之后的所有内容都会在您的本地执行机.
ssh -o ConnectTimeout=6 john@remote-pc ps aux \| grep "script.py" \| awk {\'print \'} \| xargs kill -2
以下命令在本地终端中有效:
ps aux | grep "script.py" | awk {'print '} | xargs kill -2
但是这个命令不能远程工作:
ssh -o ConnectTimeout=6 john@remote-pc ps aux | grep "script.py" | awk {'print '} | xargs kill -2
...即使远程上的 script.py 属于 john,我们也是 ssh 用户。我能ping通,其他命令也能成功。
您需要对管道进行转义,以便将它们传递给 ssh
命令,而不是由您的本地 shell 执行,否则 ps aux
之后的所有内容都会在您的本地执行机.
ssh -o ConnectTimeout=6 john@remote-pc ps aux \| grep "script.py" \| awk {\'print \'} \| xargs kill -2