如何使用mono将.NET Windows Service应用程序迁移到Linux?

使用mono将.NET Windows服务迁移到Linux最好的方法是什么? 我一直在试图避免执行该应用程序作为预定的命令。

是否有可能获得一个服务/系统守护进程(在Linux中)的行为?

Solutions Collecting From Web of "如何使用mono将.NET Windows Service应用程序迁移到Linux?"

在Linux下, deamons是简单的后台进程。 在Windows中不使用特殊的控制方法(例如start()stop() )。 将您的服务构建为简单(控制台)应用程序,并在后台运行。 使用daemonize类的工具作为Unix守护进程运行一个程序,并记住指定mono作为要激活的程序。

正如其他人所指出的, mono-service是运行使用ServiceProcess程序集构建的服务的主机。 为Windows构建的服务可以使用此方法在Linux下未修改运行。 您可以通过向流程发送信号来控制服务(请参见手册页)。

你可以使用单一服务来包装它吗?

看到这个问题 。

我过去的做法是将.Net应用程序编译为控制台应用程序,然后在Linux服务器上在initscripts目录中创建一个启动脚本。

Linux显然没有Windows服务,启动时从rc.d目录启动的守护进程与其相当。 大部分的rc.d脚本都是在后台线程上启动不同的应用程序,所以没有什么复杂的。 额外的工作的唯一的一点是,你将需要编写一个Linux shell脚本启动,如果你想停止服务。