Планирование запуска службы после другой службы

Планирование запуска службы после другой службы

У меня есть служба, которую нужно запустить толькоПОСЛЕдругая служба. Есть ли способ настроить службу так, чтобы она запускалась только после завершения запуска другой?

Очевидно, я мог бы использовать отложенный запуск или написать пакетный скрипт, чтобы сделать это, но оба эти решения грязные / временные. Поэтому я задался вопросом, могу ли я как-то запланировать это?

Можно ли это сделать?

решение1

По моему опыту, лучший способ создания зависимостей служб, не роясь в реестре (что не является безопасным, надежным или легко поддающимся скриптованию == повторяемости), — это использование SC.exe — утилиты управления службами, входящей в комплект каждой версии Windows, начиная с Win2003.

Вы можете открыть командное окно и ввести команду, scчтобы получить полную справку, но суть ее такова:

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

Создает новую службу с именем «newservice», указывает на ее путь, обеспечивает ее автоматический запуск и делает ее зависимой от службы NetBIOS.

Узнайте больше о SCздесь.

решение2

Вам придется использовать редактор реестра (насколько я знаю), чтобы сделать службу зависимой от другого сервера. Найдитезависимыйservice в HKLM\SYSTEM\CurrentControlSet\servicesи добавьте REG_MULTI_SZзначение с именем DependOnService. В качестве значения укажите имя службы (не отображаемое имя, а то же имя, что и в ключе реестра).

При перезагрузке сейчас Windows запустит вашу зависимую службу только после того, как запустится служба, от которой вы ее сделали зависимой. Аналогично, если служба, от которой она зависит, не запустится, ваша зависимая служба тоже не запустится.

решение3

Пока служба развернута правильно в webcontainer, когда вы запускаете tomcat, он автоматически запускает службу, как и любое другое веб-приложение. Пожалуйста, имейте в виду, что веб-служба, развернутая в webcontainer, — это не что иное, как служба, обернутая в сервлет, который ищет SOAP-запрос через HTTP, как и любой другой сервлет.

решение4

Вы можете сделать вторую службу зависимой от первой, а затем запустить вторую службу вместо первой. Windows убедится, что первая служба запущена, прежде чем запускать вторую службу.

Связанный контент