197 votes

Exécuter le fichier batch comme un service Windows

Pour exécuter une application, il faut lancer un fichier batch (qui fait des choses comme démarrer Jetty, afficher les journaux en direct, etc.) L'application ne fonctionnera que si ce fichier batch est en cours d'exécution. L'application ne fonctionnera que si ce fichier batch est en cours d'exécution. Je suis donc obligé d'avoir ce fichier batch en cours d'exécution et de ne pas me déconnecter du serveur Windows.

Ce fichier batch peut-il être exécuté comme un service ? Je suis en train d'expérimenter l'une des suggestions d'un groupe de travail de la Commission européenne. question similaire .

188voto

Junior Mayhé Points 5202

NSSM est totalement gratuit et hyper-facile, en exécutant l'invite de commande / le terminal en tant qu'administrateur :

nssm install "YourCoolServiceNameLabel"

une boîte de dialogue apparaîtra alors pour que vous puissiez choisir où se trouve le fichier que vous voulez exécuter.

pour désinstaller

nssm remove "YourCoolServiceNameLabel"

72voto

Stephen Martin Points 4858

Pourquoi ne pas simplement le configurer comme une tâche programmée qui s'exécute au démarrage ?

38voto

Doug Currie Points 26016

Voir RunAsService .

3voto

lexu Points 5385

Comme le dit Doug Currie, utilisez RunAsService.

D'après mon expérience passée, vous devez vous rappeler que le service que vous générez sera

  • ont un ensemble de variables d'environnement complètement différent
  • doivent être soigneusement inspectés pour les questions de droits et d'autorisations.
  • pourrait causer des ravages s'il ouvre des boîtes de dialogue demandant n'importe quel type d'entrée.

Je ne sais pas si le dernier point est toujours d'actualité... C'était un gros problème dans un projet sur lequel j'ai travaillé il y a quelque temps.

3voto

Nicholas Points 8468

Bien qu'il ne soit pas gratuit (mais 39 $), FireDaemon a si bien fonctionné pour moi que je me dois de le recommander. Il exécutera votre fichier batch, mais dispose d'un grand nombre de fonctionnalités supplémentaires très utiles, telles que la planification, la surveillance des services, l'installation de services, de dépendances, de variables environnementales et la gestion des journaux à l'aide d'une interface graphique ou de XML.

J'ai commencé par utiliser FireDaemon pour lancer les serveurs d'applications JBoss ( exécuter.bat ) mais j'ai réalisé peu après que la richesse des capacités de configuration de FireDaemon me permettait d'abandonner le fichier batch et de recréer l'intention de ses commandes dans la définition du service FireDaemon.

Il existe également un SUPER FireDaemon appelé Trinity que vous pouvez consulter si vous avez un grand nombre de serveurs Windows sur lesquels gérer ce service (ou techniquement, n'importe quel service).

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