web-dev-qa-db-ja.com

Windowsサービスの障害を強制してその回復設定をテストする方法

設定されたリカバリ方法が正しく機能するかどうかをサービスの失敗にテストさせる方法はありますか?

Screenshot of recovery dialogue

これらはリカバリオプションの設定であり、テストしたいと思います。この特定のサービスに問題がある場合でもサービスが開始済みとして表示されることはわかっているので、単にサービスを停止しても機能するとは思えませんが、右クリックすると開始するオプションがあります。

6
Yevgen

さて、まず、適切なコントロールを使用して手動でサービスを停止すると、回復にはなりません。

次に、管理コンソールでサービスを停止した後、ページを更新して(F5)、正しいステータスを表示する必要があります。

ここで、サービス障害をシミュレートするために、サービスが実行されているプロセスを終了できます。このプロセスは、タスクマネージャーのServicesタブに移動し、右クリックしてGo To Processを選択することで見つけることができます。 1つのプロセスが複数のサービスをホストする場合があり(特にsvchost.exeの場合)、プロセスを終了するとそれらのサービスがすべて終了することに注意してください。また、これはnclean exitであり、サービスを強制終了したときにサービスが何を行っていたかによっては、データが破損する可能性があります。

停止しようとしている特定のサービスによっては、障害をシミュレートするためのよりクリーンな方法がある場合があります。

2
Bob

プロセスのpidを見つけ、taskkillコマンドを使用して次のようにプロセスを強制終了します。

例:


taskkill/F/pid 7236


次に、プロセスが回復するのを待ちます。サービスのプロパティの[リカバリ]タブで設定した時間を待つ必要があります。最低は1分です。タスクマネージャの[サービス]タブでも、サービスのステータスを確認できます。

ありがとう!

2
Singular