fabric不能用nohup调用远程脚本

Hav*_*avy 4 python nohup fabric

在远程服务器中,我有一个脚本test.sh,如:

#!/bin/bash
echo "I'm here!"
nohup sleep 100&
Run Code Online (Sandbox Code Playgroud)

从本地,我运行'fab runtest'来调用远程test.sh.

def runtest():
    run('xxxx/test.sh')
Run Code Online (Sandbox Code Playgroud)

我可以得到输出"我在这里!",但我无法在远程服务器中找到睡眠过程.我错过了什么?

谢谢!

Lar*_*Cai 6

可以在远程机器的脚本中运行nohup吗?

我在这里检查了答案和Fabric FAQ,也从fabric获取提示似乎启动apache2但是没有,它可以让我将它们组合在一起

您可以保留您的test.sh无需更改,并添加pty=False相关的shell重定向.

from fabric.api import *
def runtest():
    run("nohup /tmp/test.sh >& /dev/null < /dev/null &",pty=False)
Run Code Online (Sandbox Code Playgroud)

至少,它对我有用.