我正在運行一個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