Налаштуйте дії відновлення, які мають відбуватися, коли сервіс не працює


10

Я встановив багато наших спеціальних письмових сервісів на вікнах Windows (не важливо, чи XP, Server, Vista). Я завжди налаштовую "Перезапустити сервіс" на 1-й, 2-й та наступні збої. Але я ніколи не бачив цієї роботи; сервіс просто припиняється (через помилку чи щось в коді), але не перезапускається.

Щойно я помітив прапорець "Увімкнути дії для зупинки з помилками". Чи потрібно це перевірити, щоб відновлення вплинуло, якщо помилка була викликана помилкою?

дякую, Марку.

Відповіді:


3

Якщо ваші служби зупиняються через помилку, яка реєструється вікнами, то так, вам потрібно поставити галочку "Увімкнути дії для зупинки з помилками", інакше це не буде працювати.

Якщо у вас немає цього пункту, він лише перезапустить служби, які зупинилися з законних чи невідомих причин.


1
Спасибі - я щось це зрозумів. Але я б подумав, що "Помилка" буде те саме, що і "провал", а значить, служба повинна була розпочатися без встановлення прапорця.
М Шенкель

Це здається трохи дивним, я погоджуюсь, оскільки більшість причин, з яких сервіс вийшов з ладу, ви вважаєте, що це буде помилкою.
Сем Коган

2
Жодні дії з відновлення ніколи не будуть ініційовані на службах, які зупинилися з "законних" причин. Ця відповідь все ще заплутається в термінах "зупинка" та "відмова".
матпоп

3
Той, хто в Microsoft, що писав цю мову, повинен нескінченно побиватися за свою некомпетентність.
Brain2000

16

У Windows Vista та Windows Server 2008 було введено прапорець "Увімкнути дії для зупинок з помилками", надаючи єдиний незручний рядок документації :

Виберіть Увімкнути дії для зупинок з помилками , щоб викликати дії відновлення, які служба зупинила з помилкою.

SC.exe програма була також оновлена , щоб забезпечити нову команду: failureflag. Документація показує поганий приклад і на самому ділі не відноситься до Windows Server 2003, але говорить про те , що команда:

Вказує, чи будуть запускатися дії відновлення, коли служба припиняється внаслідок помилки.

Отже, прапорець і sc failureflagвикористовується для встановлення одного і того ж прапора.
Давайте наберемо sc failureflagкомандний рядок, нарешті отримаємо цілком пристойний опис:

Змінює налаштування прапора дій відмов у службі. Якщо цей параметр дорівнює 0 (за замовчуванням), диспетчер управління послугами (SCM) дозволяє налаштувати дії відмови в сервісі лише в тому випадку, якщо процес обслуговування закінчується службою в стані, відмінному від SERVICE_STOPPED. Якщо цей параметр дорівнює 1, SCM дозволяє налаштувати дії відмови в сервісі, якщо служба переходить у стан SERVICE_STOPPED з кодом виходу Win32, відмінним від 0, крім завершення сервісного процесу, як зазначено вище. Цей параметр ігнорується, якщо в сервісі не налаштовано жодних дій з відмов.

Подібний опис можна знайти тут .
Отже, правильна відповідь на початкове запитання полягає в тому, що налаштовані дії відновлення завжди набувають чинності, коли ваша служба не припиняється в стані SERVICE_STOPPED. "Увімкнути дії для зупинок з помилками" необхідно перевірити, якщо вам потрібно ввімкнути дії відновлення також, коли ваша служба переходить у стан SERVICE_STOPPED, за умови, що код виходу не 0 (помилка).


2
Кудо за дуже корисну відповідь!
Тім Ловелл-Сміт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.