我习惯于使用Topshelf创buildWindows服务。 使用.NET Core和跨平台的前景,这引发了一些有趣的场景:
以上主要是上下文。 为了解决这个问题,我想知道为了在Linux上使用.NET Core运行Windows服务,需要采取哪些步骤。 如果这可以跨平台统一完成,甚至更好。
我不认为有这个跨平台的解决方案。 服务是特定平台,AFAIK。
对于#2,如果要在systemd
下运行.NET Core,则应该可以在不进行任何代码更改的情况下执行此操作。 你基本上需要做的是发布你的应用程序,然后创建一个systemd
unit
文件来描述你的守护进程。 systemd
将处理启动,重新启动和杀死您的应用程序。
这里有一个systemd单元文件的例子来运行一个ASP.NET Core应用程序作为服务: https : //docs.microsoft.com/en-us/aspnet/core/publishing/apache-proxy#monitoring-our-应用
[Unit] Description=Example .NET Application [Service] WorkingDirectory=/var/aspnetcore/hellomvc ExecStart=/usr/bin/dotnet /var/aspnetcore/hellomvc/hellomvc.dll Restart=always RestartSec=10 SyslogIdentifier=dotnet-example User=apache Environment=ASPNETCORE_ENVIRONMENT=Production [Install] WantedBy=multi-user.target