2010-12-17 8 views
3

私はサービスであるコマンドラインのPythonアプリケーションを持っています。つまり、接続を待っていて、Webサーバーのように質問されたら機能します。そこなど、端末からの離脱のすべての問題に対処するためのフォークpython-daemonライブラリですが、私は少しさらに行きたい - プログラムを持って次の操作を行いますpython unixサービスライブラリ

  1. それが既に実行中かどうかを知ります
  2. 'start'オプションを指定して呼び出すと、デーモンが起動していない場合は起動するか、既存のPIDを指定して実行している場合は終了します。
  3. 'stop'オプションを指定して呼び出すと、実行中のインスタンスが存在する場合はそのインスタンスを強制終了し、PIDファイルを消去する必要があります。
  4. 'restart'オプションを指定して呼び出すと、 'stop'を実行してから 'start'を実行します。
  5. 'status'オプションを指定すると、実行中のインスタンスのPIDが表示されます。

標準のUnixサービスのように見えますが、それは私が欲しいものです。このようなパターンを実装するPythonライブラリはありますか?

+1

たぶん正常なサーバーを書き、supervisordようなもので、それを「デーモン」? http://supervisord.org/ –

+0

@Peteris私はそれについて考えましたが、過剰殺人のように見えます - 私は非常に単純なものが必要です... – StasM

+0

要件(1..5)は、 POSIX関数はすでにPHP([kill](http://www.php.net/manual/es/function.posix-kill.php)、終了、読み込み、書き込み、getpid、[pcntl_signal](http:// us3 .php.net/manual/es/function.pcntl-signal.php))。サービスがTERM信号を待ち受け、exit()を呼び出します。 2.サービスを開始する(=シェル、exec、forkなど)。 getpid()のPIDをファイルに保存します。 3.キル($ Pid_of_service)。 4.停止+停止; 5.ファイルからpidを読み込みます。だから、ラッパースクリプトは、ライブラリの代わりに、うまくいくはずです。 – frayser

答えて

関連する問題