3

对于我用来在远程机器上建立网络服务器的脚本,我认为这是一个相当独特的问题。

我有一个控制器脚本,它在检查分类帐后会在远程机器上启动一个“构建器”脚本。此构建器脚本的一部分调用了一个 bash 脚本,该脚本启动了一个我想在两个脚本完成后继续运行的进程。

我唯一的问题是构建器脚本似乎完成(到达最后一行),但似乎没有将控制权返回给控制器脚本。

作为记录,我在控制器脚本中使用 subprocess.call(启动 ssh 调用)来启动远程机器上的构建器脚本。我玩弄了在构建器脚本中启动 bash 脚本的各种方法,但似乎构建器不会将控制权返回给控制器,直到终止由 bash 脚本生成的进程。

我尝试过的事情:

pid=os.spawnl(os.P_NOWAIT,dest+'/start_background_script.sh')
pid=subprocess.Popen([dest+'/start_background_script.sh'])
os.system(dest+'/start_background_script.sh &')
pid=os.spawnl(os.P_NOWAIT,dest+'/start_background_script.sh')

bash 脚本被写入您执行它的位置,它使两个进程在后台运行,然后返回控制权。

有什么建议吗?

4

1 回答 1

3

对我来说,这听起来像是一份织物工作。

Fabric 为您包装了远程(以及本地)机器上的 shell 调用处理。

于 2012-07-19T12:44:27.897 回答