将Windows服务移植到Linux

4

我正在将一个作为Windows后台服务运行的应用程序移植到Linux(SUSE企业服务器),但我对Linux完全不熟悉。有人可以帮助我如何进行吗?

  1. 我应该构建Linux可执行文件吗?
  2. 在构建二进制文件之后,我应该对Linux启动文件进行哪些更改以运行此可执行文件?
  3. 我的服务如何注册回调函数来修改、更改或发送命令给我的服务,而它正在运行?
2个回答

3

3
  1. 是的,你应该构建一个Linux二进制文件。我觉得你可能需要重新表达你的问题,因为我怀疑这不是你想要的答案 :-)
  2. 通常情况下,你应该创建一个被称为“init”文件的文件,它位于/etc/init.d目录中。Novell有一份指南在线上可供使用来编写此文件。请注意,虽然init文件是常见的,但操作系统使用它的确切方法因发行版而异。
  3. 这对你来说将是一个显著的变化。如果你只是进行简单的操作,例如重新加载配置文件,则可以使用信号功能,特别是SIGHUP/HUP信号,这通常用于此目的。如果你需要与你的守护进程进行扩展通信,则可以使用UNIX域套接字(将其视为命名管道)或网络套接字。

另一个你需要完成的任务是将你的应用程序转换为守护进程。通常,这是通过首先fork()你的进程,然后在子进程中重定向stdin/stdout管道来完成的。更多详细信息可以阅读此文档来回答。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接