【发布时间】:2017-10-15 11:40:16
【问题描述】:
我习惯于使用 Topshelf 创建 Windows 服务。借助 .NET Core 和跨平台的前景,这引发了许多有趣的场景:
- 鉴于 Topshelf 尚不支持 .NET Core,如何为 .NET Core 创建 Windows 服务? (一种方法是创建一个常规的 .NET Core 控制台应用程序并使用 NSSM 安装它,但它不提供启动/停止挂钩,因此无法正常停止服务。
- 您如何在 Linux 上做同样的事情?没有 Windows 服务,但有守护进程的概念。 This answer 提供了一种基本方法,但需要额外的工作并且依赖于某些底层软件。
- 上述 #1 和 #2 是否可以使用跨平台方法完成,或者是否有必要针对每个平台解决此问题(例如使用预处理器指令)?
以上主要只是上下文。出于这个问题的目的,我想知道我需要采取哪些步骤才能使用 .NET Core 在 Linux 上运行相当于 Windows 服务的功能。如果这可以跨平台以统一的方式完成,那就更好了。
【问题讨论】: