我正在运行一个python脚本,它涉及在远程计算机上运行“burnP6”后台进程。在远程计算机上使用python启动后台进程
我试图用布:
import fabric.api
fabric.api.execute(run_burnP6_bg, hosts=[remote_machine])
def run_burnP6_bg():
fabric.api.run("burnP6 &")
我也尝试过使用ssh -f与子:
import subprocess
def cpu_load(receiver, load_percent='100', time_seconds='3'):
if 1<= load_percent and 100 >= load_percent:
cmd = 'ssh -f [email protected]{1} '.format(ip_addr) + "'burnP6 &'"
subprocess.call(cmd.split(' '))
elif 0 == load_percent:
# No load to be added
pass
但他们都没有工作。在远程服务器上运行时,我没有看到任何burnP6进程。
有什么我失踪?
尝试'fabric.api.run(“(nohup burnP6&)”)'。对于supbrocess,使用'shlex.split()'而不是'str.split()'。我怀疑你的'命令'没有按预期解析。使用'-l用户'而不是'@'。使用'disown -a'和'nohup'即使在终端使用之后仍然继续运行。一般来说,首先测试你的ssh命令,然后再尝试将它推入python/fabric。 – 2014-10-01 20:31:21
谢谢。错误在分裂。我需要我的cmd列表的形式:['ssh','-f','acelio','nohup burnP6&'] – Akshya11235 2014-10-01 21:02:41