別のサービスの後にサービスを開始するスケジュール

別のサービスの後にサービスを開始するスケジュール

開始する必要があるサービスがあります別のサービス。別のサービスの起動が完了した後にのみサービスが起動するように設定する方法はありますか?

もちろん、遅延開始を使用したり、バッチ スクリプトを記述してこれを行うこともできますが、どちらも面倒で一時的な解決策です。そのため、何らかの方法でこれをスケジュールできるかどうか疑問に思いました。

それはできるでしょうか?

答え1

私の経験では、レジストリを調べずに (安全でも、安全でも、簡単にスクリプト化できる == 繰り返し可能なものでもない) サービス依存関係を作成するための最良の方法は、Win2003 以降のすべての Windows バージョンにパッケージ化されているサービス制御ユーティリティである SC.exe を使用することです。

コマンド ウィンドウを開いて入力するとsc完全なヘルプが表示されますが、要点は次のとおりです。

sc create newservice binpath= c:\nt\system32\newserv.exe type= own start= auto depend= "netbios"

「newservice」という名前の新しいサービスを作成し、そのパスをポイントし、自動的に起動し、NetBIOS サービスに依存するようにします。

SCについてもっと読むここ

答え2

サービスを他のサーバーに依存させるには、レジストリエディタを使用する必要があります(私の知る限り)。依存のサービスにHKLM\SYSTEM\CurrentControlSet\servicesREG_MULTI_SZという値を追加しますDependOnService。サービス名 (表示名ではなく、レジストリ キーと同じ名前) を値として入力します。

ここで再起動すると、Windows は依存するサービスが起動した後にのみ依存サービスを起動します。同様に、依存するサービスが起動に失敗すると、依存サービスも起動しません。

答え3

サービスが Web コンテナーに適切にデプロイされている限り、Tomcat を起動すると、他の Web アプリケーションと同様にサービスが自動的に開始されます。Web コンテナーにデプロイされた Web サービスは、他のサーブレットと同様に HTTP 経由で SOAP 要求を検索するサーブレットにラップされたサービスにすぎないことに注意してください。

答え4

2 番目のサービスを最初のサービスに依存させ、最初のサービスの代わりに 2 番目のサービスを開始することができます。Windows は、2 番目のサービスを開始する前に最初のサービスが開始されていることを確認します。

関連情報