2012-07-19 192 views
3

我相信我是一个相当独特的问题,我用它来站立远程计算机上的web服务器。在远程计算机上启动一个启动bash脚本的python脚本

我有一个控制器脚本,它在检查分类帐后,启动远程计算机上的“构建器”脚本。这个构建器脚本的一部分调用了一个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脚本被写入到你执行它,它的背景两个进程,然后返回控制。

有什么建议吗?

回答

3

听起来像fabric给我的工作。

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

+0

我被锁定在仅使用基于2.6.2的模块。但是,这是很好的知道。 – Malforus 2012-07-30 21:09:58