Windows服务移植到linux

时间:2010-04-21 16:59:40

标签: windows linux porting

我正在移植一个在Windows启动时作为后台服务运行的应用程序,我们正在将应用程序移植到linux(SUSE Enterprise服务器),我是一个全新的linux。有人可以帮我解决这个问题。像

  1. 我应该构建linux可执行文件吗
  2. 在构建二进制文件之后,我应该对linux启动文件进行哪些更改以运行此可执行文件
  3. 我的服务如何注册回调功能,以便在服务运行时修改或更改或发送命令

2 个答案:

答案 0 :(得分:3)

请参阅how-to-migrate-a-net-windows-service-application-to-linux-using-mono

在Linux下,deamons是简单的后台进程。在Windows中没有使用特殊的控制方法(例如start()stop())。将您的服务构建为一个简单的(控制台)应用程序,并在后台运行它。您可以使用daemonize之类的工具将程序作为Unix守护程序运行。

答案 1 :(得分:3)

  1. 是的,你应该构建一个Linux二进制文件。您可能想要重新解释您的问题,因为我怀疑这是您想要的答案: - )
  2. 您通常应该创建所谓的“init”文件,该文件位于/etc/init.d中。 Novell有一个指南online which you can use to author the file.请注意,虽然init文件很常见,但让操作系统使用它的确切方法因分发而异。
  3. 这对你来说将是一个显着的变化。如果您正在执行简单操作(例如重新加载配置文件),则可以使用信号功能,尤其是通常用于此目的的SIGHUP / HUP信号。如果需要与守护程序进行扩展通信,则可以使用UNIX域套接字(将其视为命名管道)或网络套接字。
  4. 您需要完成的另一项任务是守护您的应用程序。通常,这是通过首先fork()进程,然后重定向子进程中的stdin / stdout管道来完成的。阅读this document

    可以回答更多细节