[英]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.