C'è un modo rapido per, dato un file eseguibile, creare un servizio Windows che, quando avviato, lo lancia?Crea il servizio Windows dal file eseguibile
risposta
Per creare un servizio di Windows da un file eseguibile, è possibile utilizzare sc.exe
:
sc.exe create <new_service_name> binPath= "<path_to_the_service_executable>"
è necessario avere le virgolette attorno alla attuale exe
percorso, e uno spazio dopo la binPath=
.
More information on the sc
command can be found in Microsoft KB251192.
Si noti che non funzionerà per qualsiasi eseguibile: l'eseguibile deve essere un servizio di Windows (i.e. implement ServiceMain). Quando si registra un file eseguibile non di servizio come un servizio, si otterrà il seguente errore sul tentativo 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.
dovrai (quasi certamente) eseguire il prompt dei comandi come amministratore per far funzionare questo comando. – Jeutnarg
Il percorso deve anche essere il percorso completo: non è possibile avviare il servizio utilizzando un percorso relativo. – RunOfTheShipe
lo spazio dopo 'binpath =' insieme a dover racchiudere il percorso dell'eseguibile con virgolette è totalmente sbagliato, almeno per Windows 10. la citazione è necessaria se e solo se il percorso contiene caratteri speciali come spazi bianchi. inoltre, il case (lowe/upper/mixed-case) non ha importanza da nessuna parte, anche nei nomi delle variabili, e 'displayname =" il mio servizio "' è un'altra chicca da passare sulla linea di comando mentre si crea un servizio da visualizzare come prima riga ('Nome') in' services.msc'. – Chinggis6
Utilizzare NSSM (il gestore di servizi non Sucking) per eseguire un .BAT o qualsiasi file .EXE come servizio.
funziona per me :)
Il miglior gestore di servizi di sempre. Sono persino riuscito a far installare PlexWatch come servizio utilizzando NSSM. – Imperative
questo set è un servizio per sempre? ogni volta che Windows inizia il servizio inizierà? anche come posso fare questo senza l'interazione dell'utente? uno script o un codice di qualche tipo? –
Questo è assolutamente fantastico, vorrei poter accettare questa risposta al posto del primo, :-( –
estensione (Kevin Tong) risposta.
Fase 1: Scarica & Unzip nssm-2.24.zip
Fase 2: comando Da tipo di linea:
C:\> nssm.exe install [servicename]
si aprirà GUI, come di seguito (l'esempio è il server UT2003), quindi basta sfogliarlo a: yourapplication.exe
Maggiori informazioni su: https://nssm.cc/usage
Sintassi corretta 'installazione nssm.exe [ serviceName] '. Questa soluzione funziona ma se hai un'applicazione GUI, non funzionerà su Win Serever2003. Se in seguito vuoi rimuoverlo, usa' nssm.exe rimuovi [nomeutente] ' –
Sto assumendo il riferimento a nginx è perché quello è il particolare programma che vuoi eseguire come servizio? Fino a quando ho visto il commento di hmd sopra ho pensato che stavi cercando di aiutare implicando che nginx era una dipendenza necessaria per l'installazione o qualcosa del genere ... ma poi nella GUI sembra che non stai installando nginx, stai installando un server Unreal Tournament? Basta sottolineare che l'esempio è incoerente e potenzialmente fuorviante. "Supponiamo di voler installare nginx come servizio, quindi piace così: "aiuterebbe. – flutefreak7
@ flutefreak7 sì 'nginx' non è necessario e fuorviante. Il comando funzionerà anche senza di esso. È un parametro facoltativo se si desidera fornire il nome del servizio dal prompt dei comandi. –
Molte risposte esistenti includono l'intervento umano al momento dell'installazione. Questo può essere un processo soggetto 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. Esegui
serman install <path_to_config_file>
installerà il servizio. stdout
e stderr
sono tutti registrati. Per maggiori informazioni, dai uno sguardo allo project website.
Un file di configurazione di lavoro è molto semplice, come illustrato di seguito. Ma ha anche molte funzioni utili come <env>
e <persistent_env>
di seguito.
<service>
<id>hello</id>
<name>hello</name>
<description>This service runs the hello application</description>
<executable>node.exe</executable>
<!--
{{dir}} will be expanded to the containing directory of your
config file, which is normally where your executable locates
-->
<arguments>"{{dir}}\hello.js"</arguments>
<logmode>rotate</logmode>
<!-- OPTIONAL FEATURE:
NODE_ENV=production will be an environment variable
available to your application, but not visible outside
of your application
-->
<env name="NODE_ENV" value="production"/>
<!-- OPTIONAL FEATURE:
FOO_SERVICE_PORT=8989 will be persisted as an environment
variable to the system.
-->
<persistent_env name="FOO_SERVICE_PORT" value="8989" />
</service>
questi extra rivelarsi utile .. bisogno di essere eseguito come amministratore
sc install <service_name> binpath=<binary_path>
sc stop <service_name>
sc queryex <service_name>
sc delete <service_name>
Se il nome del servizio ha qualche spazi, racchiudere tra "virgolette".
Ho testato un buon prodotto per questo: AlwaysUp. Non è gratuito ma hanno un periodo di prova di 30 giorni, quindi puoi provarlo ...
Per alcune ragioni, non è stato possibile sovrascrivere il percorso della directory eseguibile utilizzando NSSM.
Questo è ciò che ho fatto per fare in modo che il servizio punti all'eseguibile corretto.
sc config YourServiceName binpath = "C: \ somedirectory \ YourFile.EXE" For more details
- 1. Autenticazione file eseguibile di Windows
- 2. Come determinare il sottosistema dell'applicazione dal file eseguibile
- 3. Crea un singolo modulo eseguibile python
- 4. Chiamata Shell32.dll dal servizio Windows .NET
- 5. Come accedere al servizio RIA WCF dal servizio Windows?
- 6. Crea script bash eseguibile che accetta il drag & drop
- 7. Windows Lua a eseguibile
- 8. Come eseguire l'applicazione console dal servizio Windows?
- 9. Crea eseguibile script Hellothon Python
- 10. La stampa dal servizio Windows su Windows 8 fallisce
- 11. Come creare un file .exe eseguibile dal file .m
- 12. Crea percorso file virtuale dal flusso
- 13. trovare l'effettivo eseguibile e il percorso associato a un servizio Windows utilizzando C#
- 14. Makefile - Crea un eseguibile per ogni file .c nella cartella
- 15. Servizio WCF vs servizio Windows
- 16. C# file di configurazione del servizio Windows
- 17. Abilita/disabilita il servizio Windows utilizzando il file batch
- 18. Crea un bitmap/disegnabile dal percorso file
- 19. Sed crea file non cancellabili in Windows
- 20. WPF - crea il modello ProgressBar dal file PSD
- 21. crea il file di dump dal database in mysql
- 22. Come creare il servizio Windows da jar java?
- 23. Eclipse crea CompilationUnit dal file .java
- 24. Impossibile avviare il servizio Windows
- 25. Chiamata Ajax per scaricare il file restituito dal servizio RESTful
- 26. Impossibile inviare e-mail SMTP dal servizio Windows su Win7
- 27. Installazione del servizio Windows con file batch?
- 28. Observer File non funziona dal servizio intento
- 29. Git crea il ramo dal master estratto?
- 30. Come 'collegare' il file oggetto al file eseguibile/compilato?
[qui] (http://support.microsoft.com/kb/137890/en-us) è le istruzioni di Microsoft circa come ottenere questo. – PiRX