簡體   English   中英

fabric不能用nohup調用遠程腳本

[英]fabric can NOT call the remote script with nohup

在遠程服務器中,我有一個腳本test.sh,如:

#!/bin/bash
echo "I'm here!"
nohup sleep 100&

從本地,我運行'fab runtest'來調用遠程test.sh.

def runtest():
    run('xxxx/test.sh')

我可以得到輸出“我在這里!”,但我無法在遠程服務器中找到睡眠過程。 我錯過了什么?

謝謝!

可以在遠程機器的腳本中運行nohup嗎?

我在這里檢查了答案和Fabric FAQ ,也從fabric獲取提示似乎啟動apache2但是沒有 ,它可以讓我將它們組合在一起

您可以保留test.sh而不進行更改,並使用相關的shell重定向添加pty=False

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

至少,它對我有用。

根據Fabric FAQ,您無法再有效地執行此操作。 相反,你應該使用tmux,screen,dtach甚至更好地使用python守護進程包

import daemon

from spam import do_main_program

with daemon.DaemonContext():
    do_main_program()

我們遇到了這個問題,發現你可以在命令中使用nohup ,但不能在腳本本身中使用nohup

例如, run('nohup xxxx/test.sh')有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM