web-dev-qa-db-ja.com

Ubuntuでデーモンの複数のインスタンスを生成する

pythonスクリプトがあり、redisリストのデータを待機している間リッスンしてブロックします。

以下を使用して、起動時に正常に実行されます。

description "stage message consumer"
author "Nilesh Ashra"

start on started mountall
stop on shutdown

respawn

exec Sudo -u user REDIS_Host=0.0.0.0 ENVIRONMENT=my_env /usr/bin/python /path/to/message_consumer.py

私の質問は、upstartを使用してこれらのうち12個をスピンアップできますか?

そうでない場合は、これを行う方法をお勧めできますか?

3
Nilesh Ashra

インタープリター型言語デーモンに取り組んでからしばらく経っているので、これをやめることもできますが、これを行う「正しい」方法は、ポートをリッスンするようにプログラムを設計し、リクエスト/ジョブのバンドルを処理する別のプロセスをフォークすることだと思います親がさらに接続をリッスンしている間、別のポートで。

単純なWebサーバーを作成する方法のコードサンプルを探して、このようなことを行う方法を確認することをお勧めします。 Mailqは、複数のプロセスに同じIPとポートのペアを同時にリッスンさせることはできないというのは正しいことです。

つまり...ジョブを実行する他のワークプロセスをフォークしてから、制御プロセスと同期します。

3