Службы - Как отследить сбой службы
-
ES
Службы - Как отследить сбой службы
Здравствуйте!
Стоит лицензионная Windows 10 Pro.
Установлена специальная служба, к которой обращаются с запросами по HTTP через интернет, и она отправляет ответы.
Периодически эта служба отваливается.
В свойствах службы указаны действия при сбоях: "сбой1 - перезапуск службы", "сбой2 - перезапуск службы", "сбой3 - перезагрузка компьютера".
Скажите, пожалуйста:
1) Как система определяет, что служба "сбойнула"?
2) Как можно отследить когда был сбой и какое действие было выполнено?
И что обозначают параметры "Сброс счетчика ошибок через 0 дн." и "Перезапуск службы через 1 мин."?
Стоит лицензионная Windows 10 Pro.
Установлена специальная служба, к которой обращаются с запросами по HTTP через интернет, и она отправляет ответы.
Периодически эта служба отваливается.
В свойствах службы указаны действия при сбоях: "сбой1 - перезапуск службы", "сбой2 - перезапуск службы", "сбой3 - перезагрузка компьютера".
Скажите, пожалуйста:
1) Как система определяет, что служба "сбойнула"?
2) Как можно отследить когда был сбой и какое действие было выполнено?
И что обозначают параметры "Сброс счетчика ошибок через 0 дн." и "Перезапуск службы через 1 мин."?
-
ES
Re: Службы - Как отследить сбой службы
Ребята, подскажите, пожалуйста
Где-нибудь хранятся протоколы работы служб?
Где-нибудь хранятся протоколы работы служб?
-
Petya V4sechkin
Re: Службы - Как отследить сбой службы
Цитата ES:
Где-нибудь хранятся протоколы работы служб?
При сбоях служб в журнал событий пишутся ошибки от источника Service Control Manager (коды 7023, 7022, 7024, 7031, 7034, 7000, 7009, 7011 и т. д.).
Кроме того, службы могут записывать свои индивидуальные логи, если это заложено в их программном коде.
Цитата ES:
1) Как система определяет, что служба "сбойнула"?
За состоянием служб следит Service Control Manager (системный процесс services.exe).
Где-нибудь хранятся протоколы работы служб?
При сбоях служб в журнал событий пишутся ошибки от источника Service Control Manager (коды 7023, 7022, 7024, 7031, 7034, 7000, 7009, 7011 и т. д.).
Кроме того, службы могут записывать свои индивидуальные логи, если это заложено в их программном коде.
Цитата ES:
1) Как система определяет, что служба "сбойнула"?
За состоянием служб следит Service Control Manager (системный процесс services.exe).
-
ES
Re: Службы - Как отследить сбой службы
Цитата Petya V4sechkin:
Кроме того, службы могут записывать свои индивидуальные логи, если это заложено в их программном коде.
Да, свой лог есть, но он очень скудный.
Есть только информация, что произошел сбой, но нет никакой информации о причине сбоя.
Цитата Petya V4sechkin:
За состоянием служб следит Service Control Manager (системный процесс services.exe)
А как он понимает, что служба сбойнула?
Периодически опрашивает? Какие-то специальные сообщения службе посылает?
Кроме того, службы могут записывать свои индивидуальные логи, если это заложено в их программном коде.
Службы - Как отследить сбой службы
Да, свой лог есть, но он очень скудный.
Есть только информация, что произошел сбой, но нет никакой информации о причине сбоя.
Цитата Petya V4sechkin:
За состоянием служб следит Service Control Manager (системный процесс services.exe)
Службы - Как отследить сбой службы
А как он понимает, что служба сбойнула?
Периодически опрашивает? Какие-то специальные сообщения службе посылает?
-
Petya V4sechkin
Re: Службы - Как отследить сбой службы
Цитата ES:
А как он понимает, что служба сбойнула?
Если она завершается с ненулевым кодом выхода.
А как он понимает, что служба сбойнула?
Если она завершается с ненулевым кодом выхода.
-
ES
Re: Службы - Как отследить сбой службы
Я проверил системный журнал событий...
Так вот для последнего случая, когда был сбой в службе и она была остановлена, в системном журнале никаких записей нету.
В своем собственном журнале в момент сбоя эта служба написала "failure exception".
Получается система "не видит" когда служба остановилась?
Или видит, но нигде это не отмечает.
Так вот для последнего случая, когда был сбой в службе и она была остановлена, в системном журнале никаких записей нету.
В своем собственном журнале в момент сбоя эта служба написала "failure exception".
Получается система "не видит" когда служба остановилась?
Или видит, но нигде это не отмечает.
-
Petya V4sechkin
Re: Службы - Как отследить сбой службы
Цитата ES:
Получается система "не видит" когда служба остановилась?
Значит, эта доморощенная служба завершилась с кодом 0, несмотря на "failure exception". Потому что криво написана.
Получается система "не видит" когда служба остановилась?
Значит, эта доморощенная служба завершилась с кодом 0, несмотря на "failure exception". Потому что криво написана.
-
ES
Re: Службы - Как отследить сбой службы
Цитата Petya V4sechkin:
Значит, эта доморощенная служба завершилась с кодом 0, несмотря на "failure exception". Потому что криво написана.
Похоже на то.
Отправили запрос разработчикам.
Значит, эта доморощенная служба завершилась с кодом 0, несмотря на "failure exception". Потому что криво написана.
Службы - Как отследить сбой службы
Похоже на то.
Отправили запрос разработчикам.
-
ES
Re: Службы - Как отследить сбой службы
Продолжается разбор полетов нашей службы...
В очередной раз в ней произошел сбой и она остановилась.
И снова в системном журнале никаких сведений об этом событии
В очередной раз в ней произошел сбой и она остановилась.
И снова в системном журнале никаких сведений об этом событии

-
Казбек
Re: Службы - Как отследить сбой службы
Предлагаю проследить в целом за службой, используя PM. Общий вектор движения:
Scenario 2: Service Startup Failure
Troubleshooting service startup issues with Process Monitor