C# · 12月 29, 2021

c# – .NET服务到Linux守护进程

我正在使用.NET 3.5编写一个便携式服务/守护程序,我的 Windows服务正在运行,但我正在想知道单端口…

如果我正确理解,单身服务是我正在寻找的.这是如何工作的?我假设我的服务需要单声道兼容的代码,对吧?例如,我正在使用sqlite.是否正确的是,为了使用这个单声道我应该重构我的代码使用单声道命名空间等,如Mono.Data.sqlite?我还可以使用Settings.settings吗?

另外,我已经看到守护进程没有实现onStart / Stop方法,所以我需要将我的代码改为在mono / linux下运行?即可以在我的代码中使用这些方法,还可以运行ServiceBase.Run()吗?单服务是否适应这些?

解决方法 您应该从头开始创建程序,以便与Windows和 Linux一起使用.

您需要具有单声道工具的Visual Studio或免费的MonoDevelop-IDE来创建单声道应用程序. MonoDevelop可以导入您的Visual Studio项目.此IDE可帮助您获取正确的命名空间.

使用Mono-Service作为守护进程运行您的程序集. Linux守护进程正在使用信号与系统进行通信.请阅读the documentation.

我们已经有一个类似的问题,所以please read this看到,如何处理Unix-Signals.