サービスの「状態」比較 #2

前回からだいぶ間が空いてしまいましたが、よくあるお問い合わせ「OS を再起動したところ、再起動前は実行されていなかったサービスが、再起動後に勝手に実行されている。これは問題ではないか。」についての第二回です。

 

 

例えば Windows 7Windows Server 2008 R2 の場合ですと、サービスの「スタートアップの種類」は4種類あります。

OS 起動時に自動的に開始される [ 自動 ]、それより 2 分遅れで自動的に開始される [ 自動(遅延開始)] 、何らかの契機により必要に応じて開始される [ 手動 ] 、まったく動かない [ 無効 ] です。

 

 

これらのうち [手動] という表現が問題で、「人間が手作業で [ 開始 ] ボタンを押した時にだけ開始する」サービスだという誤解を生んでいます。

実際にはそういう意味ではなく、人間の操作によらずとも、コンピューターの内部動作により必要に応じて随時開始(用が済んだら停止)されます。

 

 

そのことは、イベントビューアの「システム」ログで確認出来ます。

何らかのサービスが開始された際には「レベル:情報, ソース:Service Control Manager, イベント ID:7036, 説明:○○サービスは 実行中  状態に移行しました。」というイベントが記録されますので、パソコンを半日ぐらい手を触れずに放置してから確認してみてください。

いくつかのサービスが勝手に開始していることを確認出来ると思います。

(停止の際に記録されるイベントも、同ソースの同イベント ID です。)

 

 

なお「スタートアップの種類」を [ 自動 ] から [ 手動 ] に変更した場合、「システム」ログに「レベル:情報, ソース:Service Control Manager, イベント ID:7040, 説明:○○サービスの開始の種類は 自動的な開始  から 要求による開始 に変更されました。」というイベントが記録されます。

全部「要求による開始」という表現に統一しておけば無駄な誤解を生むことも無いはずなのですが、マイクロソフトはそこまで考えていないのでしょう。。。

 

 

このように、サービスの中には勝手に開始および停止するモノもありますので、OS 再起動の前後でサービスの状態を単純比較することに、たいした意味は有りません。

(もしかしたら、完全一致するケースの方が珍しいのかもしれません。)

意味のあるチェックをするとしたら、「このサーバーにおいて必ず開始されていなくてはいけない○○サービスが、ちゃんと開始されているか?」といったように、もっと的を絞る必要があります。

DNS サーバーなのに DNS Server サービスが開始されていなかったら、それは当然問題ですからね。

 

 

しかし、実際にこのお問い合わせいただいた場合に、本当に問題が起きていたことはほとんどありません。

大抵の場合は、そのサービスのスタートアップの種類が [ 手動 ] であるがために、状態を確認したタイミングでたまたま開始(または停止)されていただけです。

 

 

まだつづく。