我正在使用Fabric來初始化postgres服務器。我不得不在命令的末尾添加了「睡眠1」或以postgres服務器進程死無解釋或在日誌中的條目:爲什麼在調用pg_ctl重新啓動織物後需要睡眠
sudo('%(pgbin)s/pg_ctl -D %(pgdata)s -l /tmp/pg.log restart && sleep 1' % env, user='postgres')
即,我看到在終端上的輸出:
[dbserv]執行任務 'setup_postgres'
[dbserv]運行:/斌/慶典-l -c「命令-u postgres的/usr/lib/postgresql/9.1/bin/pg_ctl -D /數據/ PG -l /tmp/pg.log restart & & sleep 1「
[dbserv] out:等待服務器關閉....完成
[dbserv]出:服務器停止
[dbserv]出:服務器啓動
沒有&& sleep 1
,沒有什麼在/tmp/pg.log(雖然被創建的文件),並沒有Postgres的過程運行。隨着睡眠,一切正常。
(如果我直接執行目標機器的命令行相同的命令,它工作正常,沒有睡眠。)
由於它的工作,它不真的的事,但我要問反正:有人知道睡眠允許發生什麼,爲什麼?
是的,這工作取代睡眠。我會投票,但我缺乏聲譽。 – wouldnt
我討厭這個網站的其中一部分。它是否也阻止你接受?這種功能如何強制新用戶只能提問而不是詢問/回答,這很奇怪。 – Morgan
恕我直言,它不*真的*回答這個問題,因爲它沒有說出發生了什麼,但如果在幾天內沒有其他答覆,我會接受答案。 – wouldnt