Exécutez le fichier batch comme un service Windows

pour exécuter une application, un fichier batch doit être lancé (ce qui fait des choses comme démarrer la jetée, afficher les journaux en direct, etc). L'application ne fonctionnera que si ce fichier batch est en cours d'exécution. Je suis donc forcé de faire tourner ce fichier batch et de ne pas me déconnecter du serveur Windows.

ce fichier par lot peut-il être utilisé comme un service? J'expérimente une des suggestions d'une question similaire .

118
demandé sur Community 2009-01-06 07:02:27

6 réponses

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

nssm install "YourCoolServiceNameLabel"

alors une boîte de dialogue apparaîtra pour que vous puissiez choisir où est le fichier que vous voulez lancer.

pour désinstaller

nssm remove "YourCoolServiceNameLabel"
111
répondu Junior M 2012-11-08 17:21:46

pourquoi ne pas simplement le mettre en place comme une tâche planifiée qui doit être exécutée au démarrage?

56
répondu Stephen Martin 2009-01-07 17:30:58

comme 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 complètement différent de variables d'environnement
  • doivent être soigneusement inspectés pour les questions de droits/permissions
  • pourrait causer des ravages s'il ouvre des dialogues demandant n'importe quel type d'entrée

pas sûr si le dernier l'un s'applique toujours ... c'était une grosse jument de nuit dans un projet sur lequel j'ai travaillé il y a quelque temps.

3
répondu lexu 2009-01-06 04:36:24

il y a un cmd intégré à windows pour faire ceci: sc create . Pas aussi sophistiqué que nssm, mais vous n'avez pas à télécharger un logiciel supplémentaire.

sc create "ServiceName" start= demand displayname= "DisplayName" binpath= [path to .bat file]

Note

  • start=demande signifie que vous devez démarrer le service vous-même
  • espace requis après =
  • j'ai rencontré une erreur lors du démarrage du service, à savoir que le service n'a pas répondu à une mais il était clair que le service avait dirigé l'enquête .chauve-souris avec succès. Je n'ai pas encore creusé dans ce mais ce thread éprouvé la même chose et résolu en utilisant nssm pour installer le service.
3
répondu w00ngy 2018-07-26 15:53:06

bien qu'il ne soit pas gratuit (mais $39), FireDaemon a si bien fonctionné pour moi, je dois le recommander. Il exécutera votre fichier batch mais a des charges de fonctionnalités supplémentaires et très utiles telles que l'ordonnancement, la surveillance de service up, GUI ou XML basé sur l'installation de services, les dépendances, les variables environnementales et la gestion de journal.

j'ai commencé à utiliser FireDaemon pour lancer les serveurs d'application JBoss ( run.chauve-souris ), mais peu de temps après j'ai réalisé que la richesse des capacités de configuration de FireDaemon m'a permis de laisser tomber le fichier batch et de recréer l'intention de ses commandes dans la définition de service de FireDaemon.

il y a aussi un super FireDaemon appelé Trinity que vous pourriez vouloir regarder si vous avez un grand nombre de serveurs Windows sur lesquels gérer ce service (ou techniquement, n'importe quel service).

2
répondu Nicholas 2009-01-06 11:06:11

AlwaysUp exécutera facilement votre fichier batch comme un service. Il est similaire à FireDaemon (mentionné ci-dessus) et n'est pas gratuit, mais vous pouvez trouver le riche ensemble de fonctionnalités pour être un atout dans un environnement professionnel.

bonne chance!

0
répondu CoreTech 2014-09-01 22:10:27