通过Fabric运行一个希望执行后台命令的shell脚本
我刚接触Fabric,想要在后台运行一个命令,这个命令是用shell脚本写的,我需要通过Fabric来执行它。假设我有一个shell脚本命令,内容如下:
#!/bin/bash/
java &
这个文件叫做myfile.sh
现在在Fabric中,我用以下代码来运行我的脚本:
put('myfile.sh', '/root/temp/')
sudo('sh /root/temp/myfile.sh')
理论上,这应该会在后台启动一个Java进程,但当我登录到机器上,用jobs命令查看正在运行的任务时,却什么都没有显示。
请问问题出在哪里呢?希望能给点提示。
3 个回答
1
可能在你返回之前,那个进程就已经存在了。当你输入java的时候,通常会显示帮助信息然后退出。你可以试试加个睡眠语句,或者其他让程序停留一会的东西。如果你想让它在后台运行,可以在sudo命令后面加上&符号。
4
使用它与
run('nohup PATH_TO_JMETER/Jmetercommand & sleep 5; exit 0)