Afin d'exécuter une application, un fichier de commandes doit être lancé (ce qui fait des choses comme 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 batch 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 l'une des suggestions d'une question similaire .
windows
windows-services
batch-file
publicRavi
la source
la source
Réponses:
NSSM est totalement gratuit et hyper-facile, exécutant l'invite de commande / terminal en tant qu'administrateur:
puis une boîte de dialogue apparaîtra pour que vous puissiez choisir où se trouve le fichier que vous souhaitez exécuter.
désinstaller
la source
nssm
tous les arguments nécessaires en entrée pour éviter la saisie de données contextuelles - j'essaie d'automatiser le processus?Pourquoi ne pas simplement le configurer en tant que tâche planifiée dont l'exécution est planifiée au démarrage?
la source
Il existe une commande Windows intégrée pour ce faire: sc create . Pas aussi sophistiqué que nssm, mais vous n'avez pas besoin de télécharger un logiciel supplémentaire.
Remarque
=
la source
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 à déclencher lors de la connexion (ou selon la condition que vous souhaitez) et choisissez la tâche dans l'onglet Actions. L'exécuter masqué garantit que la tâche s'exécute silencieusement en arrière-plan comme 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 fonctionnera toujours au premier plan.
la source
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
Je ne sais pas si le dernier s'applique toujours ... c'était une grosse jument de nuit dans un projet sur lequel j'ai travaillé il y a quelque temps.
la source
Bien que ce ne soit pas gratuit (mais 39 $), FireDaemon a si bien fonctionné pour moi que je dois le recommander. Il exécutera votre fichier de commandes, mais dispose de nombreuses fonctionnalités supplémentaires et très utiles telles que la planification, la surveillance de la maintenance, l'installation de services par GUI ou XML, les dépendances, les variables environnementales et la gestion des journaux.
J'ai commencé à utiliser FireDaemon pour lancer les serveurs d'applications JBoss ( run.bat ) mais j'ai réalisé peu de temps 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 voudrez peut-être examiner si vous avez un grand nombre de serveurs Windows sur lesquels gérer ce service (ou techniquement, n'importe quel service).
la source
Sur Windows 2019 Server, vous pouvez exécuter un serveur java Minecraft avec ces commandes:
sc create minecraft-server DisplayName = "minecraft-server" binpath = "cmd.exe /CC:\Users\Administrator\Desktop\rungui1151.lnk" type = own start = auto
Le fichier .lnk est un raccourci Windows standard vers un fichier de commandes.
--- Le fichier .bat commence ---
java -Xmx40960M -Xms40960M -d64 -jar serveur_minecraft.1.15.1.jar
--- Le fichier .bat se termine ---
Tout cela parce que:
le service ne sait pas comment démarrer dans un dossier,
cmd.exe ne sait pas comment démarrer dans un dossier
Le démarrage du service produira une erreur "en temps opportun", mais le fichier journal révèle que le serveur est en cours d'exécution.
Si vous avez besoin d'arrêter le serveur, allez simplement dans le gestionnaire de tâches et trouvez le serveur java dans les processus d'arrière-plan et terminez-le, ou arrêtez le serveur du jeu à l'aide de la commande / stop, ou pour d'autres programmes / serveurs, utilisez les méthodes pertinent pour le serveur.
la source
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 pouvez trouver que le riche ensemble de fonctionnalités est un atout dans un environnement professionnel.
Bonne chance!
la source