web-dev-qa-db-fra.com

Redémarrer automatiquement le service Windows s'il ne fonctionne pas

J'ai un service Windows exécuté sur un serveur Windows 2003. Sous l'option Propriétés lorsque vous cliquez avec le bouton droit de la souris sur le service, il est possible de redémarrer le service s'il échoue. Les options disponibles sont pour la première, la deuxième et les échecs ultérieurs.

J'ai essayé d'utiliser cette option pour redémarrer le service lorsqu'il n'est pas en cours d'exécution, mais on dirait que cela ne redémarre que le service si le service échoue à la suite d'une défaillance. Le problème que j'ai est que s'il y a une défaillance, le service le ramasse et ferme le service "gracieusement". Cela signifie qu'il n'est pas redémarré.

Existe-t-il une façon de redémarrer le service, que cela soit arrêté à cause d'une défaillance ou s'il a cessé de gracieux?

Merci

9
ziggy

Pour un service de comportement erroné comme celui-ci, je créerais un petit script qui vérifie s'il est en cours d'exécution et le démarre si ce n'est pas le cas. Ensuite, j'utiliserais des tâches planifiées pour exécuter le script toutes les 5 minutes environ.

Exemple de script (chèques pour le service de spouleur):

@echo off
Rem Look for the Print Spooler service in the list of started services
net start | find /i "Print Spooler"
Rem if not found, start it and a restart occurred.
if "%errorlevel%"=="1" (
   echo Service "Print Spooler" restarted at %time% on %date% by Script %0>>c:\ServiceRestart.Log
   net start "Print Spooler"
)
10
Multiverse IT

Quel service est-ce? J'ai eu une question étrange avec le service de fax MS une fois. Je l'ai résolu en vérifiant les processus du gestionnaire de tâches, mettant fin au processus s'il est répertorié, puis en ouvrant une invite de commande et en tapant:

net start faxsvc.exe

Vous pouvez utiliser net stop faxsvc.exe Pour terminer le service aussi.

Une autre chose est de vérifier les dépendances et de le redémarrer également, c'est-à-dire ceux que le service de télécopie dépend.

ÉDITER : Je suppose que cela pourrait aider, mais je n'ai pas très bien lu votre question très bien. Je sais qu'il y a un programme appelé Service Hawk disponible, mais cela coûte de l'argent. Une autre idée serait de faire correspondre un fichier de commandes qui redémarrera le service chaque xx secondes/minutes/heures/si longtemps la durée entre le fonctionnement et l'échec de l'échec est.

1
Daniel

Voici la réponse!

Utilisation de la commande PowerShell suivante peut pouvoir le service de chèque et de démarrage requis

$A = get-service AdobeARMservice 
if ($A.Status -eq "Stopped") {$A.start()} elseIf ($A.status -eq "Running") {Write-Host -ForegroundColor Yellow $A.name "is running"}   
0