2012-09-06 6 views
5

私はFabricを使ってPostgreSQLサーバを初期化しています。私は、コマンドの末尾に「スリープ1」を追加する必要がありますかPostgresのサーバプロセスは、説明やログにエントリせずに死ぬ:、私は端末に出力が表示されpg_ctl restartのファブリックコールの後にスリープが必要な理由

sudo('%(pgbin)s/pg_ctl -D %(pgdata)s -l /tmp/pg.log restart && sleep 1' % env, user='postgres') 

[DBSERV]実行中のタスク 'setup_postgres'
[DBSERV]を実行します/ binに/ bashの-l -c「sudoの-u postgresの/usr/lib/postgresql/9.1/bin/pg_ctl -D /データ/ PG -l /tmp/pg.log restart & & sleep 1 "
[dbserv] out:サーバーがシャットダウンするのを待っています。完了
[DBSERV]アウト:&& sleep 1なければ

を開始するサーバー、/tmp/pg.logで何も(ファイルが作成されるが)、ありませんし、無postgresのプロセスです:サーバが
[DBSERV]アウトが停止しましたランニング。睡眠で、すべてうまく動作します。

(そして、私は、ターゲット・マシンのコマンドラインで直接同じコマンドを実行した場合、それは睡眠なしで正常に動作します。)

それが働いているので、それはない本当に問題ありませんが、私はとにかく聞いていますのよ:誰かが睡眠が起こることを許している理由と理由を知っていますか?

答えて

4

また、pty optionをfalseに設定して、ファブリックがpseudo-ttysを処理する方法に関連するかどうかを確認することもできます。

+0

ええ、それは睡眠の代わりに動作します。私はそれを投票するだろうが、私は評判が足りない。 – wouldnt

+0

私は実際にこのサイトのその部分が嫌いです。また、あなたも受け入れないようにしていますか?機能が新しいユーザーに質問/回答の代わりに質問できるようにするには、それは奇妙です。 – Morgan

+0

IMHO、実際に何が起こっているのかが分からないので、*本当に*質問に答えることはできませんが、数日後に他の返信がない場合、その答えを受け入れます。 – wouldnt

関連する問題