Créer un service Windows à partir de l'exécutable
Est-il un moyen rapide d'un fichier exécutable, de créer un service Windows qui, lorsqu'il est lancé, il se lance?
- Ici est Microsoft instructions sur la façon d'atteindre cet objectif.
Vous devez vous connecter pour publier un commentaire.
Pour créer un Service Windows à partir d'un fichier exécutable, vous pouvez utiliser
sc.exe
:Vous devez avoir des guillemets autour de la réelle
exe
chemin, et un espace après lebinPath=
.Plus d'informations sur le
sc
commande peut être trouvé dans Microsoft KB251192.Noter qu'il ne fonctionne pas pour juste n'importe quel exécutable: le fichier exécutable doit être un Service Windows (- de mettre en œuvre ServiceMain). Lors de l'enregistrement d'un non-exécutable du service en tant que service, vous obtiendrez l'erreur suivante lors de la tentative de démarrage du service:
Il existe des outils qui peuvent créer un Service Windows de l'arbitraire, non exécutables, voir les autres réponses pour des exemples de ces outils.
binpath=
ainsi que d'avoir à entourer le chemin de l'exécutable avec des guillemets est totalement faux, au moins pour windows 10. le devis est obligatoire si et seulement si le chemin d'accès contient des caractères spéciaux comme des espaces. aussi, le boîtier (lowe/majuscules/minuscules) n'a pas d'importance n'importe où, dans les noms de variables trop, etdisplayname="my service"
est un autre goodie pour passer sur la ligne de commande lors de la création d'un service pour afficher la première ligne (Name
) àservices.msc
.binPath=
a été nécessaire pour moi sur Windows 7, mais pas sur Windows 10Utilisation NSSM( la non-Sucer le Gestionnaire de Service de ) pour exécuter une .Chauve-souris ou de tout .Fichier EXE comme un service.
http://nssm.cc/
nssm.exe install [serviceName]
Extension (Kevin Tong) réponse.
Étape 1: Télécharger & Décompressez nssm-2.24.zip
Étape 2: De ligne de commande du type:
C:\> nssm.exe install [servicename]
il va ouvrir GUI comme ci-dessous (l'exemple est UT2003 serveur), puis il suffit de le parcourir pour: yourapplication.exe
Plus d'informations sur: https://nssm.cc/usage
nssm.exe install [serviceName]
. Cette solution fonctionne, mais si vous avez une Application graphique, il ne fonctionnera pas sur Win Serever2003. Si plus tard vous voulez l'enlever, utilisernssm.exe remove [youservicename]
nginx
n'est pas nécessaire et trompeuse. La commande va fonctionner sans elle, ainsi. Il est facultatif paramètre si vous voulez fournir le service de nom à partir de l'invite de commande.De nombreuses réponses de l'intervention humaine au moment de l'installation. Cela peut être source d'erreurs. Si vous avez de nombreux fichiers exécutables voulais être installé que dans les services, la dernière chose que vous voulez faire est de les faire manuellement au moment de l'installation.
Vers le scénario décrit ci-dessus, j'ai créé serman, un outil de ligne de commande pour installer un exécutable en tant que service. Tout ce que vous devez écrire (et écrire uniquement une fois) est un simple fichier de configuration du service ainsi que votre exécutable. Exécuter
va installer le service.
stdout
etstderr
sont tous enregistrés. Pour plus d'infos, jetez un oeil à la site web du projet.Un travail fichier de configuration est très simple, comme illustré ci-dessous. Mais il a aussi de nombreuses fonctionnalités utiles telles que
<env>
et<persistent_env>
ci-dessous.ces extras s'avérer utile.. doivent être exécutés en tant qu' administrateur
Si votre nom de service a des espaces, mettez dans les "citations".
J'ai testé un bon produit pour qui: AlwaysUp. Pas gratuit, mais ils ont 30 jours de période d'essai de sorte que vous pouvez lui donner un essai...