Fabric挂起的运行过程

时间:2019-03-06 15:02:13

标签: python fabric

我无法在Fabric上运行进程。我有一个可以运行的程序,例如无限循环。

// loop.c
int main()
{
    while(1)
    {
        sleep(1);
    }
    return 0;
}

然后我用一个启动脚本开始这个过程:

#!/bin/sh
./loop &

这很好,因为我只是运行./start,但是我试图使用Fabric使用python脚本运行它(因为在我的实际情况下,我想在远程计算机上运行它)。我的python脚本如下:

#!/usr/bin/env python

# imports ...

fabric.state.output['running'] = False
fabric.api.env.always_use_pty = False
fabric.api.env.host_string = "localhost"

command = "./start"
output = fabric.api.run(command)

我的问题是,当我运行python脚本时,它挂在run命令上并且永远不会返回。我可以使用ps -A | grep loop进行检查,该过程正在运行。如果我手动终止循环过程,则python脚本完成。

关于我可能会丢失的任何想法?如果需要更多信息/详细信息,请告诉我。

谢谢!

1 个答案:

答案 0 :(得分:0)

使用fabric.api.run('nohup ./loop')