.net 核心一个代码 service/daemon for Windows/Linux

.net core one code for service/daemon for Windows/Linux

在 Windows 上有 windows 服务,在 Linux 上有守护进程。

是否可以使用 .net 核心编写一个代码,它像服务一样在 Windows 上工作,在 Linux 上像守护进程一样工作?或者我必须编写不同的系统依赖启动代码?

服务和 *守护进程(不是恶魔)只是 OS 管理 executables/scripts 的简单方式,所以只要代码是 OS 独立的(比如 .NET 核心)您应该能够使用相同的代码库。

运行 作为 daemon/service 的可执行文件将因操作系统而异。因此,我已经链接到一些现有的堆栈溢出问题,这些问题应该会有所帮助。

How do you create a Linux daemon from a .NET Core console application?

Create Windows service from executable

查看 Worker Services(如果您现在可以使用 .NET Core 3.x):

您可以从新的 Visual Studio 2019 Worker Service 项目模板或使用 .NET CLI 创建一个:

dotnet new worker

另请参阅:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-3.1&tabs=visual-studio