使用python在远程计算机上启动后台进程

2024-07-08 14:39:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行一个python脚本,它涉及在远程计算机上运行“burnP6”后台进程。在

我试着用布料:

import fabric.api
fabric.api.execute(run_burnP6_bg, hosts=[remote_machine])

def run_burnP6_bg():
    fabric.api.run("burnP6 &")

我还尝试在子进程中使用ssh-f:

^{pr2}$

但他们两个都不起作用。在远程服务器上运行top时,我没有看到任何burnP6进程。在

我有什么遗漏吗?在


Tags: runimport脚本apiexecute远程remote进程
1条回答
网友
1楼 · 发布于 2024-07-08 14:39:13

使用ssh登录并使用job&启动任何作业进程。在另一个窗口中使用ssh登录并执行ps检查作业:您应该看到它正在运行。现在注销您的第一个ssh并再次检查您的作业流程。你会注意到它现在不见了。发生这种情况的原因是作业默认附加到终端,并且在终端关闭时发送SIGHUP。在

现在重复这个过程,运行nohup job&disown job&。这两种方法都可以防止SIGHUP破坏作业过程。在

要修复代码,可以使用以下任一方法:

import fabric.api
fabric.api.execute(run_burnP6_bg, hosts=[remote_machine])

def run_burnP6_bg():
    fabric.api.run("nohup burnP6 &")

或子流程

^{pr2}$

这些可以防止您的作业在ssh会话结束时终止。在

相关问题 更多 >

    热门问题