J'ai un script batch qui ressemble à:
sc stop myservice
sc start myservice
il se trompe car sc n'attend pas que le service soit arrêté. Comment redémarrer un service avec un script?
J'ai un script batch qui ressemble à:
sc stop myservice
sc start myservice
il se trompe car sc n'attend pas que le service soit arrêté. Comment redémarrer un service avec un script?
Réponses:
L’affiche veut s’assurer que le service est arrêté avant d’essayer de le redémarrer. Vous pouvez utiliser une boucle sur le résultat de "sc query" en procédant comme suit:
la source
Peut-être qu'il manque quelque chose, mais je l'utilise tout le temps:
ou plus court:
la source
Dead simple avec powershell:
Encore mieux, en utilisant les noms d'affichage:
Get-Help Restart-Service
pour plusla source
S'il s'agit uniquement de redémarrer le service, vous pouvez utiliser
Toutefois, si vous souhaitez accéder aux options de sc, vous pouvez utiliser la commande start / wait.
Cette technique est une solution plus générale qui peut être appliquée à n'importe quelle commande.
la source
sc stop myservice
enverra simplement la commande stop et reviendra avant que le service ne soit arrêté. Appeler sc avec start / b ne vous aidera pas.Pour que le redémarrage silencieux d’un service demande l’arrêt des confirmations (en tant que service Serveur, par exemple), vous pouvez ajouter / y à la commande de fin d’arrêt.
Cela serait utile pour l'exécution automatique de scripts.
la source
Si vous souhaitez redémarrer un service en échec, vous n'avez pas besoin d'exécuter de script. Dans le composant logiciel enfichable MMC des services, cliquez avec le bouton droit de la souris sur un service, sélectionnez Propriétés, cliquez sur l'onglet Récupération. Ici, vous pouvez définir les actions que vous souhaitez entreprendre si le service s’arrête. Il y a beaucoup de flexibilité disponible. Vous aurez besoin d’un script si vous essayez d’arrêter le service, faites quelque chose puis démarrez le script, faites précéder le fichier de commandes par
net stop "myserviceshortname"
et terminez parnet start "myserviceshortname"
Dans vbscipt, c'est un peu plus de code pour arrêter un service et ses dépendants:
Voici comment démarrer un service et tout ce dont il dépend (cela devrait être familier)
la source
Vous pouvez utiliser les commandes suivantes:
la source