あなたがUpstartに言及したことから、私はこの質問がUbuntuサーバー上で実行されているサービスであると仮定します。
Ubuntuサーバーでは、アップスタートジョブは、適切なタイミングで起動し、使い慣れたコマンドで停止または再ロードすることができる常時サービスを作成するための実際の最も簡単で便利なオプションです。
アップスタートサービスを作成するには、/etc/init
に1つのファイルを追加する必要があります。 <service-name>.conf
と呼ばれます。スクリプトの例は次のようになります。
description "My chat server"
author "[email protected]"
start on runlevel [2345]
stop on runlevel [!2345]
env AN_ENVIRONMENTAL_VARIABLE=i-want-to-set
respawn
exec /srv/applications/chat.py
これは毎回マシンはそれがchat.py
プログラムを起動します開始されていることを意味します。それが何らかの理由で死亡した場合は、それが再開されます。ダブルフォークやコードのデーモン化を心配する必要はありません。それは新興企業によってあなたのために処理されます。
あなたのプロセスを停止または開始したい場合は、
service chat start
service chat stop
とその名前chat
を行うことができますが自動的に/etc/init
内.conf
ファイルの名前から発見された私はカバーしていますここで新興の基礎。それをさらに便利にするための多くの他の機能があります。すべてman upstart
を実行して利用可能です。
この方法は、独自のデーモン化コードを書くよりはるかに便利です。組み込みのUbuntuコンポーネント用の4-8行の設定ファイルは、コードを安全に二重フォークにしてから別のプロセスで監視して、遠ざけていないことを確認するよりもはるかにエラーが発生しにくいです。
Monitは少し赤いニシンです。ダウンタイムアラートが必要な場合は、別のサーバーで監視プログラムを実行する必要があります。プロセスを常にサーバー上で実行し続けるためには、新興企業に依頼してください。次に、サーバーが実際に稼動していることを確認する別のサービスを用意します。ダウンタイムはさまざまな理由で発生します。同じサーバー上で実行されているプロセスは、サーバー自体がダウンした場合には何も正確に知らせません。その状態について警告するために、別のマシン(またはpingdomのようなサードパーティーのプロバイダ)が必要です。
あなたの答えをサポートする正体はありますか? Ubuntuで実行することはオプションですが、強制的ではありません(デーモンは両方で動作します)。 ダウンタイムのアラートを取得するには、アップスタートでもmonitを使用する必要があります。 – mtariq
停止/開始時にupstartを電子メールで送信できます(http://serverfault.com/questions/236925/how-can-i-receive-an-email-when-an-upstart-monitored-script-respawns) 。本物の源?人々はあらゆる場所で生産を開始しています。本番環境ではupstartを使用します。ダウンタイムアラートにはmonitを使用できません。それは無意味です。理由を編集した回答を参照してください。 – aychedee
グレートポスト。 UpstartはDebianツリーにありますので、おそらくvanilla debianやMintなどの他の派生物で使うことができます。 – meawoppl