Michael Haephrati Ответов: 1

Служба Windows не запускается после завершения работы


Я создал приложение-службу Windows на языке c++. Служба автозапуска запускается после перезагрузки ПК. Я обнаружил, что после выбора пункта закрыть в меню Windows служба не запускается. Запись реестра в разделе "службы" существует, и запрос к ней с помощью "sc" указывает, что она установлена, но исполняемый файл не запущен, и я могу удалить файл .exe и все равно получить указание на то, что служба установлена. В чем может быть причина этого?

Что я уже пробовал:

Использование опции "автозапуск" при создании сервиса.
Я обнаружил, что если я устанавливаю драйвер, он всегда запускается независимо от того, как был выключен компьютер. Что касается службы, то она всегда запускается после мягкой перезагрузки, поэтому я думаю, что это скорее проблема с тем, как Windows работает после жесткой перезагрузки.

0x01AA

ля.) "... можно удалить exe-файл и все равно получить указание на то, что служба установлена"
Это очень нормально, информация о сервисе есть в реестре.
б.) мягкая перезагрузка против жесткой перезагрузки
Странный. Может быть, зависимость, на которую вы не обратили внимания?

Michael Haephrati

Я использую "sc query <service name>. После жесткой перезагрузки сервер появляется установленным, но в состоянии "стоп". Если я наберу "sc start <service name>", Все будет хорошо. Проблема в том, что он не запускается.
Существует много сообщений об этой проблеме: https://superuser.com/questions/1026496/automatic-services-doesnt-start-automatically-after-windows-restart

1 Ответов

Рейтинг:
0

KarstenK

Одна из причин, возможно, в том, что некоторые библиотеки DLL отсутствуют, но это не звучит так.

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

Для получения некоторых подробностей вам следует заглянуть в журнал событий системного элемента управления. Мистическое сообщение об ошибке должно помочь Вам разобраться в этой проблеме.


Michael Haephrati

Сервис отлично запускается после установки и после мягкой перезагрузки, но не после жесткой перезагрузки

KarstenK

Подробности смотрите в журнале системных событий. Можете ли вы запустить его вручную на панели управления? Вы уверены, что это не проблема в службе?

Michael Haephrati

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

Dave Kreskowiak

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

Michael Haephrati

Спасибо, Дэйв, я посмотрю.