
私はコンピュータ プログラムを作成し、それを Windows サービスとしてインストールしました。また、このスクリーンショットからわかるように、別の Windows サービスである「KEPServerEX 6.9 Runtime」への依存関係を追加しました。
私はこの依存関係をさまざまな方法でテストしました:
- コンピュータを再起動し、「KEPServerEX 6.9 Runtime」がプログラムよりも先に起動していることを確認しました。
- 「KEPServerEX 6.9 Runtime」を停止しましたが、プログラムも停止すると予想しました。
これが私の結果です:
- わかりません: プログラムが起動すると、イベント ログにエントリが作成されます。これは「KEPServerEX 6.9 Runtime」には当てはまりません。また、「KEP...」もログを作成しないため、このテストがどこで成功したかはわかりません。
- 私のプログラムは停止しませんでした。
コンピュータを再起動したときにプログラムが「KEPServerEX 6.9 Runtime」の後にのみ起動することを証明できたとしても、(ポイント 2 を見ると) Windows サービスの依存関係の意味は何なのか疑問に思います。
私は Windows 10 コンピューターで作業していますが、顧客は Windows Server 2016 を使用しています。回答は両方のオペレーティング システムで有効であることを希望します。
ご参考までに: 「KEPServerEX 6.9 Runtime」は商用ツールであるため、変更することはできません。
答え1
マイクロソフトの sc.exe 設定:
依存=
<dependencies>
このサービスの前に開始する必要があるサービスまたはグループの名前を指定します。名前はスラッシュ (/) で区切られます。
依存関係が存在する唯一の理由は、Windows の起動プロセスに何らかの秩序をもたらすことです。
起動後は、依存サービスを再起動する場合を除き、依存関係は効果がありません。