Pour exécuter une application, un fichier de commandes doit être lancé (par exemple, démarrer Jetty, afficher les journaux en direct, etc.). L'application ne fonctionnera que si ce fichier de commandes est en cours d'exécution. Je suis donc obligé de faire fonctionner ce fichier de commandes et de ne pas me déconnecter du serveur Windows.
Ce fichier de commandes peut-il être exécuté en tant que service? J'expérimente une des suggestions d'une question similaire .
NSSM est totalement gratuit et hyper facile, exécutez la commande Invite/terminal en tant qu'administrateur:
nssm install "YourCoolServiceNameLabel"
alors une boîte de dialogue apparaîtra afin que vous puissiez choisir où est le fichier que vous voulez exécuter.
désinstaller
nssm remove "YourCoolServiceNameLabel"
Pourquoi ne pas simplement le configurer comme une tâche planifiée dont l'exécution est planifiée au démarrage?
Il y a une cmd intégrée dans windows pour faire ceci: sc create . Pas aussi sophistiqué que nssm, mais vous n’avez pas besoin de télécharger un logiciel supplémentaire.
sc create "ServiceName" start= demand displayname= "DisplayName" binpath= [path to .bat file]
Remarque
=
Bien que ce ne soit pas gratuit (mais 39 $), FireDaemon a si bien fonctionné pour moi, je dois le recommander. Il exécutera votre fichier de commandes, mais dispose de nombreuses fonctionnalités supplémentaires très utiles, telles que la planification, la surveillance des services, l’installation de services basée sur une interface graphique ou XML, les dépendances, les variables d’environnement et la gestion des journaux.
J'ai commencé à utiliser FireDaemon pour lancer les serveurs d'applications JBoss (run.bat), mais je me suis vite rendu compte que la richesse des capacités de configuration de FireDaemon me permettait de supprimer le fichier de commandes 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 voudrez peut-être consulter si vous disposez d'un grand nombre de serveurs Windows sur lesquels gérer ce service (ou, techniquement, n'importe quel service).
Comme Doug Currie dit utiliser RunAsService.
De mon expérience passée, vous devez vous rappeler que le service que vous générez sera
je ne sais pas si le dernier s'applique toujours… c’était une grosse jument de nuit dans un projet sur lequel j’avais travaillé il ya quelque temps.
AlwaysUp exécutera facilement votre fichier de commandes en tant que service. Il est similaire à FireDaemon (mentionné ci-dessus) et n’est pas gratuit, mais vous trouverez peut-être que le jeu de fonctionnalités enrichi est un atout dans un environnement professionnel.
Bonne chance!
Pas besoin de logiciel supplémentaire. Utilisez le planificateur de tâches -> créer une tâche -> masqué. La case à cocher pour masqué se trouve dans le coin inférieur gauche. Définissez la tâche pour qu'elle se déclenche lors de la connexion (ou quelle que soit la condition de votre choix), puis choisissez la tâche dans l'onglet Actions. Son exécution masquée garantit que la tâche est exécutée silencieusement en arrière-plan, à la manière d'un service.
Notez que vous devez également configurer le programme pour qu'il s'exécute "que l'utilisateur soit connecté ou non", sinon le programme sera toujours exécuté au premier plan.