3

ツイスト(およびTACファイル)を介して起動されたツイストベースのサーバーが正常に起動されたかどうかを確認するための信頼できる方法が必要です。一部のネットワークオプションが正しく設定されていないため、失敗する可能性があります。ツイストログにアクセスできないため(/ dev / nullに記録されるため、ツイストされたログクラッターが生成される必要がないため)、サーバーがラップするlaunch-script内で正常に起動されたかどうかを確認する必要があります。ツイストコール。

launch-scriptは、次のようなBashスクリプトです。

#!/usr/bin/bash
twistd \
  --pidfile "myservice.pid" \
  --logfile "/dev/null" \
  --python \
  myservice.tac

ネットで見つけたのは、psなどを使ったハックだけです。しかし、私はそのようなアプローチは信頼できないと思うので、好きではありません。

では、Twistedの内部にアクセスして、現在実行中のすべてのTwistedアプリケーションを取得する方法があるかどうかを考えていますか?そうすれば、現在実行中のアプリに、Twistedアプリケーションの名前(TACファイルで名前を付けたとおり)を照会して開始できます。

ツイスト実行可能ファイルを使用せずに、この質問への回答が提供するように、ツイストコンテンツを含むPythonベースの起動スクリプトを実装することも考えていますが、それがステータスの取得に役立つかどうかはわかりません実行するサーバー。

だから私の質問はただです:twisted-loggingが無効になっているときに、twistedで起動されたTwisted Serverが正常に起動されたかどうかを判断するための信頼できる醜い方法はありますか?

4

1 に答える 1

5

PIDファイルを明示的に指定しています。ツイストはそのPIDをそのファイルに書き込みます。システムをチェックして、そのPIDを持つプロセスがあるかどうかを確認できます。

スタートアップイベントのみをログに記録し、他のすべてのログメッセージを破棄するカスタムログオブザーバーを使用して、ログを再度有効にすることもできます。次に、起動イベントのログを監視できます。

別の可能性は、あなたが言及した内部を公開する別のサーバーをアプリケーションに追加することです。次に、そのサーバーに接続して、見たいものを確認してみてください(ただし、サーバーが実行されているという事実は、プロセスが適切に起動したことを示す良い兆候のようです)。マンホールサーバーにすると、任意のPythonコードを評価できるようになります。これにより、必要なプロセスの任意の状態を検査できます。

また、アプリケーションコードに、正常な起動を明示的に示す追加の状態ファイルを書き出すようにすることもできます。アプリケーションを開始する前に必ず削除してください。そうすれば、成功と失敗の詳細な指標が得られます。

于 2011-09-27T11:59:49.373 に答える