312 votes

Arrêter et démarrer un service avec un fichier batch ou cmd ?

Comment puis-je scripter un fichier batch ou cmd pour arrêter et démarrer un service de manière fiable avec vérification des erreurs (ou me prévenir si cela n'a pas réussi pour une raison quelconque) ?

0 votes

Peut-être un peu hors sujet (puisque vous demandez une instruction bat & cmd) mais : PowerShell vous donne beaucoup de contrôle et de retour d'information pour effectuer des actions comme celle-ci.

2voto

Axeman Points 281

SC peut tout faire avec les services... démarrer, arrêter, vérifier, configurer, et plus encore...

2voto

andrew pate Points 54

Parfois, vous pouvez trouver que l'arrêt ne fonctionne pas..

Mon SQlServer le fait parfois. En utilisant la commande suivante, on le tue. Si vous avez vraiment besoin que votre script tue des processus qui ne s'arrêtent pas. Je le ferais en dernier recours

taskkill /pid [numéro de pid] /f

1voto

Onorio Catenacci Points 6130

Pouvez-vous être un peu plus précis? Mon édition de poche de "Windows NT In A Nutshell" liste "net start" et "net stop" comme étant les moyens de démarrer et d'arrêter un service à partir d'un fichier de commandes. Il ne mentionne rien à propos d'un code d'erreur ou d'autres indications de succès ou d'échec.

0voto

sh87 Points 803

Je suis en train d'écrire un service Windows en C#, la boucle stop/désinstallation/construction/installation/démarrage devenait trop fatigante. J'ai écrit un mini script, je l'ai appelé reploy.bat et je l'ai déposé dans mon répertoire de sortie Visual Studio (celui qui contient l'exécutable du service construit) pour automatiser la boucle.

Il suffit de définir ces 3 variables

servicename : celui-ci s'affiche dans le panneau de contrôle des services Windows (services.msc)

slndir : le dossier (pas le chemin complet) contenant votre fichier de solution (.sln)

binpath : le chemin complet (pas le chemin du dossier) vers l'exécutable du service depuis la construction

REMARQUE : Cela doit être exécuté à partir de la ligne de commande du développeur Visual Studio pour que la commande msbuild fonctionne.

SET servicename="Mon Super Service"
SET slndir="C:Répertoire\qui\contient\fichier\sln"
SET binpath="C:chemin\vers\service.exe"
SET currdir=%cd%

call net stop %servicename%
call sc delete %servicename%
cd %slndir%
call msbuild 
cd %bindir%
call sc create %servicename% binpath=%binpath%
call net start %servicename%
cd %currdir%

Cela pourrait peut-être aider quelqu'un :)

0 votes

Pourquoi toujours supprimer sc ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X