2016-05-25 9 views
12

Ist es möglich, mit dem gleichen Code eine .NET Core-Anwendung zu erstellen, die als Windows-Dienst und als Deamon auf Linux ausgeführt werden kann?Ist es möglich, eine .NET Core-App als Windows-Dienst UND Linux-Deamon

Haben Sie ein Beispiel/Proof of Concept?

+1

Windows-Service-Unterstützung ist derzeit sehr schwach und eine Menge Fragen über sie. Linux Daemon Support (was auch immer das ist) ist in den Zielen von .NET Core RTM (vorausgesetzt, in der nächsten Version). – Thomas

+2

Sie können es definitiv tun. Beide Umgebungen können sich mit Tools auf Kommandozeilen-Tools verbinden ... was .NET Core definitiv ab heute beherrscht. – Thomas

+1

Linux-Daemons können in fast jedem geschrieben werden, da sie im Wesentlichen nur getrennte Prozesse ohne Benutzeroberfläche sind. Wenn Sie tun können, was Sie in .NET Core benötigen, sollten Sie in der Lage sein, es als Linux-Daemon auszuführen. Die eigentliche Frage ist jedoch: "Können Sie überhaupt mit dem .Net-Kern tun, was Sie wollen?" weil es zu diesem Zeitpunkt wirklich ziemlich begrenzt ist. –

Antwort

4

Linux-Daemon-Dienste können in jeder Sprache ausgeführt werden, die auf dem System ausgeführt werden kann.

Daemons können mit systemd (in Fedora: systemctl start name.service) ausgeführt werden. Setzen Sie Ihr Programm auf Linux Systemd Dienste sollten Sie eine neue .service-Datei erstellen und verschieben Sie sie in ‚/ etc/systemd/system /‘

Die Syntax eines Dienstes ist:

[Unit] 
Description=The description of your service 
After=previous services needed 

[Service] 
ExecStart=The program execution /sbin/helloworld.exe 
ExecStop=The command given when killing the service 

[Install] 
WantedBy=services that needs your service 

Weitere Informationen über Linux-Red Hat Services und Service-Module: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Unit_Files.html