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

标签 c# service mono daemon mono-service

我正在使用 .NET 3.5 编写可移植服务/守护进程,我的 Windows 服务正在运行,但我想知道单端口...

如果我理解正确的话,Mono-service 就是我正在寻找的。这究竟是如何工作的呢?我假设我在整个服务过程中都需要单声道兼容代码,对吗?例如,我正在使用 SQLite。为了将其与单声道一起使用,我应该重构我的代码以使用单声道 namespace 等,例如 Mono.Data.SQLite,这是否正确?我还可以使用 Settings.settings 吗?

另外,我听说守护进程没有实现 onStart/Stop 方法,所以我需要更改我的代码以在 mono/linux 下运行吗?即在我的代码中使用这些方法是否可以,并且可以运行 ServiceBase.Run()? Mono-service 是否支持这些?

最佳答案

您应该从一开始就创建用于 Windows 和 Linux 的程序。

您需要带有 Mono Tools 的 Visual Studio 或免费的 MonoDevelop-IDE 来创建 Mono 应用程序。 MonoDevelop 可以导入您的 Visual Studio 项目。此 IDE 可帮助您获得正确的命名空间。

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

我们已经有类似的问题,所以please read this看看如何处理 Unix 信号。

关于c# - .NET 服务到 Linux 守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6584732/

相关文章:

c# - 如何在 C# 库中使用嵌入式 .NET exe,而不从其 byte[] 重建文件?

java - Android - 图像至上

.net - WCF 不会序列化所有属性

Angular - RxJS ConcatMap - 从两个服务调用返回数据

c# - MonoMac 上的 NSObject.InvokeOnMainThread?

c# - 在 C# 中使用 mono 或 vim 在 unix 上自动查找必要但缺少的命名空间?

c# - 为 Mono C# 应用程序生成核心转储

c# - asp.net core 2.2 不使用 WebApp Azure 配置中设置的 ConnectionString

c# - 查找包含特定字母/符号的字符串的特定部分,然后创建对这些部分的引用

c# - 在 Java 中反序列化 C# 二进制文件