2011-12-14 14 views
1

数日前私のwebappがtornadowebフレームワークのontopを書いたことがupstartで停止または再開しないことがわかりました。立ち上げはただ止まり、何もしません。Tornadoweb webappはupstart経由で管理することはできません

私はこの問題を調査し、アップスタートが間違ったPIDを受け取ることがわかったので、私のウェブアプリケーションデーモンを一度しか実行できず、何もできません。

straceのを示して、私のデーモンが行う4(!)クローン()の代わりに2

週間前に呼び出して何が良かったとWebアプリケーションを完全かつ正確に成り上がりによって管理されました。

OSは、Ubuntu 10.04.03 LTSです(数週間前と同じです)。

修正方法はありますか?

PS:私が知っている「フォークを期待|デーモン」ディレクティブ、それは何も変わりません。)

+1

アップスタートスクリプトを投稿できますか? –

答えて

1

申し訳ありませんが私の沈黙、してください。

問題の調査は、私のデーモンに2つのフォークを追加するuuidのpythonライブラリについての知識で終了しました。私はこのライブラリを取り除き、竜巻デーモンは今正しく動作します。

代わりの答えは、コンソールツールを単独でデーモンとしてデーモンとして実行できるスーパーバイザーでした。

+0

情報をありがとう!私たちは非常に似た問題に取り組んできました。 upstartはフォークコールの数について非常に不安定であることは残念です。 – cayblood

0

2つの頻繁に使用される溶液

は、最初のものは、アプリケーションが正直にそのPIDを報​​告させることですがあります。実際のpidをpidファイルに書き込むようにアプリケーションを強制することができれば、そこからpidを得ることができます。

もう1つは少し複雑です。スクリプト呼び出しに特定の環境変数を追加することができます。この環境変数は、フォークが環境をクリアしておらず、/proc/*/environファイルを解析してすべてのプロセスを見つけることができない場合、すべてのフォークに残ります。

環境によってプロセスを見つけるための簡単なソリューションが必要ですが、わかりません。

関連する問題