代码之家  ›  专栏  ›  技术社区  ›  jsstuball

为什么这不会终止远程进程?

  •  0
  • jsstuball  · 技术社区  · 6 年前

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

    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 回复  |  直到 6 年前
        1
  •  1
  •   Alan Birtles    6 年前

    你需要逃离管道,使它们被传递到 ssh 命令,而不是由本地shell执行 ps aux 在本地计算机上执行。

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