通过要运行后台运行命令的Fabric运行shell脚本

时间:2014-05-09 06:06:11

标签: python shell amazon-web-services fabric

我是 Fabric,的新手,想要在后台运行一个命令,它是用shell脚本编写的,我必须通过Fabric运行该命令,所以我假设我有一个shell脚本中的命令为:

#!/bin/bash/
java  &

考虑这是一个名为 myfile.sh

的文件

现在在 Fabric 中我使用此代码运行我的脚本:

put('myfile.sh', '/root/temp/')
sudo('sh /root/temp/myfile.sh')

现在这应该在后台启动Java进程,但是当我登录到计算机并使用 jobs 命令查看作业时,不会输出任何内容。

问题出在哪里,请说清楚。

3 个答案:

答案 0 :(得分:3)

一起使用
run('nohup PATH_TO_JMETER/Jmetercommand & sleep 5; exit 0)

答案 1 :(得分:1)

也许这个过程在你回来之前就存在了。当您键入java时,通常会显示帮助消息并退出。尝试睡眠陈述或徘徊的东西。如果你想在后台运行它,你也可以附加&到sudo电话

答案 2 :(得分:1)

我使用run("screen -d -m sh /root/temp/myfile.sh",pty=False)。这将以分离模式启动新的screen会话,该会话将在连接丢失后继续运行。我使用pty=False option,因为我发现连接到多个主机时,如果没有此选项,则不会在所有主机中启动该过程。