サービスが失敗したときに実行する回復アクションを設定する


10

私はWindowsボックスに多くのカスタム作成サービスをインストールしました(XP、Server、Vistaのどちらでもかまいません)。1回目、2回目、およびそれ以降の失敗時に常に「サービスを再起動する」ように設定します。しかし、私はこの作品を見たことがありません。サービスは単に停止しますが(エラーまたはコード内の何かが原因で)、再起動しません。

「エラーのあるストップのアクションを有効にする」チェックボックスに気づきました。エラーが原因で障害が発生した場合にリカバリを有効にするには、これを確認する必要がありますか?

ありがとう、マーク。

回答:


3

エラーのためにサービスが停止している場合、つまりWindowsによってログに記録されている場合は、「エラーのある停止のアクションを有効にする」にチェックマークを付ける必要があります。

これがチェックされていない場合、正当な理由または不明な理由で停止したサービスのみが再起動されます。


1
ありがとう-私はそれを考え出した。しかし、「エラー」は「失敗」と同じであるため、ボックスをチェックせずにサービスを開始する必要があったと思います。
Mシェンケル

サービスが失敗するほとんどの理由はエラーだと思うので、私が同意するのは少し奇妙に思えます。
Sam Cogan

2
「正当な」理由で停止したサービスでは、回復アクションはトリガーされません。この答えは、依然として「停止」と「失敗」の用語を混同しています。
matpop 2014年

3
この言語を書いたマイクロソフトの誰もが、彼らの無能さのために際限なく鞭打ちをかけられるべきです。
Brain2000、2016年

16

「エラーのあるストップのアクションを有効にする」チェックボックスは、Windows VistaおよびWindows Server 2008で導入され、1つの恥ずかしいドキュメントの行を提供しました。

サービスがエラーで停止したリカバリアクションをトリガーするには、[ エラー停止したアクションを有効にする]を選択します。

SC.exeのプログラムは、新しいコマンドを提供するように更新されました:failureflagドキュメントは悪い例を示しており、実際のWindows Server 2003には適用されませんが、コマンドことを教えてくれる:

エラーの結果としてサービスが停止したときに回復アクションをトリガーするかどうかを指定します。

したがって、チェックボックスとsc failureflagは、同じフラグを設定するために使用されます。コマンドプロンプトで入力して
みましょう。sc failureflagようやくかなり適切な説明が表示されます。

サービスの失敗アクションフラグ設定を変更します。この設定が0(デフォルト)の場合、サービスプロセスがSERVICE_STOPPED以外の状態のサービスで終了した場合にのみ、サービスコントロールマネージャー(SCM)はサービスで構成された障害アクションを有効にします。この設定が1の場合、SCMは、サービスが上記のサービスプロセスの終了に加えて、0以外のWin32終了コードでSERVICE_STOPPED状態に入ると、サービスで構成された失敗アクションを有効にします。サービスに失敗アクションが構成されていない場合、この設定は無視されます。

同様の説明がここにあります
したがって、元の質問に対する正しい答えは、サービスがSERVICE_STOPPED状態で終了しない場合、構成された回復アクションは常に有効になるということです。終了コードが0(エラー)でない場合に、サービスがSERVICE_STOPPED状態になったときにもリカバリアクションを有効にする必要がある場合は、[エラーのある停止のアクションを有効にする]をオンにする必要があります。


2
非常に役立つ回答に対する称賛!
Tim Lovell-Smith
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.