14 votes

Configurer les actions de récupération à mettre en place lorsqu'un service tombe en panne

J'ai installé un grand nombre de nos services personnalisés sur des ordinateurs Windows (peu importe s'il s'agit de XP, Server ou Vista). Je configure toujours pour "redémarrer le service" au premier, au deuxième et aux échecs suivants. Mais je n'ai jamais vu cela fonctionner ; le service s'arrête simplement (à cause d'une erreur ou de quelque chose dans le code) mais ne redémarre pas.

Je viens de remarquer la case à cocher "Activer les actions pour les arrêts avec erreurs". Doit-elle être cochée pour que la récupération prenne effet si l'arrêt a été causé par une erreur ?

Merci, Mark.

27voto

matpop Points 300

La case à cocher "Activer les actions pour les arrêts en cas d'erreur" a été introduite avec Windows Vista et Windows Server 2008, fournissant une ligne unique et embarrassante de documentation :

Sélectionnez Activer des actions pour les arrêts avec des erreurs afin de déclencher le actions de récupération que le service s'est arrêté avec une erreur.

El SC.exe a également été mis à jour pour fournir une nouvelle commande : failureflag . Le site documentation montre un mauvais exemple et ne s'applique pas vraiment à Windows Server 2003, mais nous indique que la commande :

Spécifie si les actions de récupération seront déclenchées lorsqu'un service s'arrête suite à une erreur.

Donc, la case à cocher et sc failureflag sont utilisés pour définir le même drapeau.
Tapons sc failureflag dans l'invite de commande, nous obtenons enfin une description assez décente :

Modifie le paramètre du drapeau des actions d'échec d'un service. Si ce paramètre est 0 (par défaut), le Service Control Manager (SCM) active les actions d'échec actions d'échec configurées sur le service uniquement si le processus du service se termine avec le service dans un état autre que SERVICE_STOPPED. Si ce paramètre paramètre est 1, le SCM active les actions de défaillance configurées sur le service service si le service entre dans l'état SERVICE_STOPPED avec un code de sortie Win32 différent de 0, en plus de la fin du processus du service. comme ci-dessus. Ce paramètre est ignoré si le service n'a pas d'action d'échec. actions d'échec configurées.

Une description similaire peut être trouvée aquí .
Donc, la réponse correcte à la question originale est : les actions de récupération configurées prennent toujours effet lorsque votre service ne se termine pas dans l'état SERVICE_STOPPED. "Enable actions for stops with errors" doit être coché si vous avez besoin d'activer les actions de récupération également lorsque votre service entre dans l'état SERVICE_STOPPED, à condition que le code de sortie soit pas 0 (erreur).

8voto

Mat Points 2512

Si vos services s'arrêtent à cause d'une erreur, qui est enregistrée par Windows, alors oui, vous devez cocher la case "Activer les actions pour les arrêts avec erreurs", sinon cela ne fonctionnera pas.

Si vous n'avez pas coché cette case, il ne redémarrera que les services qui se sont arrêtés pour des raisons légitimes ou inconnues.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X