
開始する必要があるサービスがあります後別のサービス。別のサービスの起動が完了した後にのみサービスが起動するように設定する方法はありますか?
もちろん、遅延開始を使用したり、バッチ スクリプトを記述してこれを行うこともできますが、どちらも面倒で一時的な解決策です。そのため、何らかの方法でこれをスケジュールできるかどうか疑問に思いました。
それはできるでしょうか?
答え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\services
、REG_MULTI_SZ
という値を追加しますDependOnService
。サービス名 (表示名ではなく、レジストリ キーと同じ名前) を値として入力します。
ここで再起動すると、Windows は依存するサービスが起動した後にのみ依存サービスを起動します。同様に、依存するサービスが起動に失敗すると、依存サービスも起動しません。
答え3
サービスが Web コンテナーに適切にデプロイされている限り、Tomcat を起動すると、他の Web アプリケーションと同様にサービスが自動的に開始されます。Web コンテナーにデプロイされた Web サービスは、他のサーブレットと同様に HTTP 経由で SOAP 要求を検索するサーブレットにラップされたサービスにすぎないことに注意してください。
答え4
2 番目のサービスを最初のサービスに依存させ、最初のサービスの代わりに 2 番目のサービスを開始することができます。Windows は、2 番目のサービスを開始する前に最初のサービスが開始されていることを確認します。