Gibt es eine schnelle Möglichkeit, aus einer ausführbaren Datei einen Windows-Dienst zu erstellen, der diese Datei beim Start ausführt?
Antworten
Zu viele Anzeigen?Dasselbe wie Sergii Pozharovs Antwort sondern mit einem PowerShell-Cmdlet:
New-Service -Name "MyService" -BinaryPathName "C:\Path\to\myservice.exe"
Véase New-Service
für weitere Anpassungen.
Dies funktioniert nur bei ausführbaren Dateien, die bereits die Windows-Dienste-API .
Vor einigen Jahren habe ich die plattformübergreifende Software Service Manager entwickelt, damit ich PHP und andere Skriptsprachen als Systemdienste unter Windows, Mac und Linux starten kann:
https://github.com/cubiclesoft/service-manager
Service Manager ist ein Satz vorkompilierter Binärdateien, die einen Systemdienst auf dem Zielbetriebssystem unter Verwendung nahezu identischer Befehlszeilenoptionen installieren und verwalten ( Quellcode ebenfalls verfügbar ). Die einzelnen Plattformen weisen zwar feine Unterschiede auf, aber die Kernfunktionen sind weitgehend einheitlich.
Wenn der untergeordnete Prozess stirbt, wird er von Service Manager automatisch neu gestartet.
Prozesse, die mit dem Service Manager gestartet werden, sollten regelmäßig nach zwei Benachrichtigungsdateien Ausschau halten, um Neustart- und Reload-Anfragen zu bearbeiten, aber sie müssen das nicht unbedingt tun. Service Manager erzwingt einen Neustart des Kindprozesses, wenn dieser nicht rechtzeitig auf kontrollierte Neustart-/Neuladeanforderungen reagiert.
Sie können mein kleines kostenloses Dienstprogramm zur Erstellung von Diensten ausprobieren \edit\delete Operationen. Hier wird ein Beispiel erstellt:
Gehen Sie zu Service -> Ändern -> Erstellen
Ausführbare Datei (Google Drive): [Download]
Quellcode: [Download]
Blog-Beitrag: [BlogLink]
Service-Editor-Klasse: WinServiceUtils.cs
Wahrscheinlich sind alle Ihre Antworten besser, aber - nur um die Auswahl der Optionen zu vervollständigen - wollte ich an eine alte, ähnliche Methode erinnern, die seit Jahren verwendet wird:
SrvAny (installiert durch InstSrv)
wie hier beschrieben: https://docs.microsoft.com/en-us/troubleshoot/Windows-client/deployment/create-user-defined-service
- See previous answers
- Weitere Antworten anzeigen