Crea il servizio Windows dal file eseguibile

C’è un modo rapido per, dato un file eseguibile, creare un servizio di Windows che, quando avviato, lo lancia?

Per creare un servizio Windows da un eseguibile, puoi usare sc.exe :

 sc.exe create  binPath= "" 

È necessario disporre di virgolette attorno al percorso exe effettivo e uno spazio dopo binPath= .

Ulteriori informazioni sul comando sc sono disponibili in Microsoft KB251192 .

Si noti che non funzionerà per un qualsiasi eseguibile: l’eseguibile deve essere un servizio di Windows (ad esempio implementare ServiceMain ). Quando si registra un servizio non eseguibile come servizio, si verificherà il seguente errore quando si tenta di avviare il servizio:

Errore 1053: il servizio non ha risposto alla richiesta di avvio o controllo in modo tempestivo.

Esistono strumenti che possono creare un servizio Windows da eseguibili arbitrari non di servizio, vedere le altre risposte per esempi di tali strumenti.

Utilizzare NSSM ( il gestore di servizi non Sucking ) per eseguire un .BAT o qualsiasi file .EXE come servizio.

http://nssm.cc/

  • Passaggio 1 : scaricare NSSM
  • Passaggio 2 : installa il tuo servizio con nssm.exe install [serviceName]
  • Passaggio 3 : verrà aperta una GUI che verrà utilizzata per individuare il file eseguibile

Estensione (Kevin Tong) risposta.

Passaggio 1: scarica e decomprimi nssm-2.24.zip

Passaggio 2: dal tipo di riga di comando:

C:\> nssm.exe install [servicename]

aprirà la GUI come sotto (l’esempio è il server UT2003), quindi naviga semplicemente su: yourapplication.exe

inserisci la descrizione dell'immagine qui

Maggiori informazioni su: https://nssm.cc/usage

Molte risposte esistenti includono l’intervento umano al momento dell’installazione. Questo può essere un processo sobject a errori. Se hai molti programmi eseguibili da installare come servizi, l’ultima cosa che vuoi fare è eseguirli manualmente al momento dell’installazione.

Verso lo scenario sopra descritto, ho creato serman , uno strumento da riga di comando per installare un eseguibile come servizio. Tutto ciò che serve per scrivere (e scrivere solo una volta) è un semplice file di configurazione del servizio insieme al tuo eseguibile. Correre

 serman install  

installerà il servizio. stdout e stderr sono tutti registrati. Per maggiori informazioni, dai un’occhiata al sito web del progetto .

Un file di configurazione funzionante è molto semplice, come dimostrato di seguito. Ma ha anche molte utili funzioni come e seguito.

  hello hello This service runs the hello application node.exe  "{{dir}}\hello.js" rotate      

questi extra si rivelano utili .. devono essere eseguiti come amministratori

 sc install  binpath= sc stop  sc queryex  sc delete  

Se il tuo nome di servizio ha spazi, racchiudi tra virgolette.

Ho testato un buon prodotto per questo: AlwaysUp . Non è gratuito ma hanno un periodo di prova di 30 giorni, quindi puoi provarlo …