使用Fabric实现远程主机的杀戮过程

use*_*513 2 ssh bash fabric

我正在使用Fabric编写脚本,需要远程终止进程.

(这意味着该命令最终以/ bin/bash命令执行)

我目前的代码如下:

在我有一个kill.sh文件中

  /bin/kill  $(ps -ef | grep multiserver.jar | grep -v bin/sh | grep -v /bin/bash | grep -v sh | grep python  | grep -v /usr/bin/java | grep -v /usr/bin/python | grep -v sh  |  awk '{print $2}')
Run Code Online (Sandbox Code Playgroud)

我使用以下命令在远程主机上运行Fabric

     local("scp "  + "kill.sh " + user +"@" + server_address + ":" + directory) 
     run ("chmod u+x kill.sh")
     run("./kill.sh")
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误消息

      out: Usage:
      [] out:  kill [options] <pid> [...]


      Fatal error: run() received nonzero return code 1 while executing!

   Requested: ./kill.sh
    Executed: /bin/bash -l -c "cd ...  && ./kill.sh"
Run Code Online (Sandbox Code Playgroud)

有谁知道我做错了什么?

Art*_*nin 5

在使用fabric读取日志解决此问题时,我编写了命令以终止远程进程:

with settings(warn_only=True):
    sudo("kill -9 `ps aux | <pipeline of greps> | awk '{print $2}'`")
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.