我在使用Fabric运行进程时遇到问题。我有一个程序运行和无限循环E.g.
// 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脚本就完成了。
关于我可能遗失的任何想法?如果需要更多信息/详细信息,请与我们联系。
谢谢!
使用fabric.api.run('nohup ./loop')