J'ai un script batch qui ressemble à ceci :
sc stop myservice
sc start myservice
il renvoie une erreur car sc ne attend pas que le service soit arrêté. Comment puis-je redémarrer un service avec un script ?
J'ai un script batch qui ressemble à ceci :
sc stop myservice
sc start myservice
il renvoie une erreur car sc ne attend pas que le service soit arrêté. Comment puis-je redémarrer un service avec un script ?
L'afficheur veut s'assurer que le service est arrêté avant de tenter de le redémarrer. Vous pouvez utiliser une boucle sur la sortie de "sc query" en faisant quelque chose comme ceci :
:stop
sc stop myservice
rem provoquer un temps de pause d'environ 10 secondes avant de vérifier l'état du service
ping 127.0.0.1 -n 10 -w 1000 > nul
sc query myservice | find /I "STATE" | find "STOPPED"
if errorlevel 1 goto :stop
goto :start
:start
net start | find /i "My Service">nul && goto :start
sc start myservice
Si c'est simplement pour redémarrer le service, vous pouvez utiliser
Net stop myservice
Net start myservice
Cependant, si vous voulez accéder aux options de sc, vous pouvez utiliser la commande start /wait
start /B /WAIT CMD /C "sc stop myservice"
start /B /WAIT CMD /C "sc start myservice"
Cette technique est une solution plus générale qui peut être appliquée à n'importe quelle commande.
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.