Ho cercato e non ho trovato quello che dovrebbe essere una semplice domanda:In che modo un servizio Windows può determinare il suo nome servizio?
Come può un servizio di Windows determinare il ServiceName per il quale è stato avviato?
so l'installazione può incidere al Registro di sistema e aggiungere un argomento della riga di comando, ma logicamente che sembra che dovrebbe essere inutile, quindi questa domanda.
Spero di eseguire più copie di un singolo binario in modo più pulito rispetto all'hack del registro.
Edit:
Questo è scritto in C#. Le mie applicazioni main() punto di ingresso fa cose diverse, a seconda di argomenti della riga di comando :
- installare o disinstallare il servizio. La riga di comando può fornire un Nome servizio non predefinito e può modificare il numero di thread di lavoro.
- Esegui come eseguibile da riga di comando (per il debug),
- Esegui come "Servizio Windows". Qui, crea un'istanza del mio ServiceBase -derived classe , quindi chiama System.ServiceProcess.ServiceBase.Run (istanza);
Attualmente, la fase di installazione aggiunge il nome del servizio e filo conteggio alla ImagePath nel Registro di sistema in modo che l'applicazione può determinare è ServiceName.
Non hai menzionato con quale lingua hai scritto il servizio. – Walter