2010-04-21 113 views
4

我正在移植一个在启动时作为后台服务运行的应用程序,我们正在将应用程序移植到Linux(SUSE Enterprise服务器),我对Linux完全陌生。有人能帮助我解决这个问题吗?像将Windows服务移植到linux

  1. 我应该构建Linux可执行
  2. builiding二进制后,我应该做出什么样的变化到Linux启动文件来运行这个可执行
  3. 如何我的服务可以注册回拨功能来修改或变更或在运行时向我的服务发送命令

回答

3
  1. 是的,你应该建立一个Linux二进制文件。您可能想要更改您的问题,因为我怀疑这是您想要的答案:-)
  2. 您通常应该创建所谓的“init”文件,该文件位于/etc/init.d中。 Novell有一个指导online which you can use to author the file.请注意,虽然init文件很常见,但让操作系统使用它的确切方法因分布而异。
  3. 这对你来说将是一个显着的变化。如果您正在执行诸如重新载入配置文件等简单操作,则可以使用信号功能,特别是通常用于此目的的SIGHUP/HUP信号。如果您需要与守护进程进行扩展通信,则可以使用UNIX域套接字(将其视为命名管道)或网络套接字。

您将需要完成的另一项任务是将您的应用程序进行守护程序。一般来说,这是通过先fork()进程,然后将stdin/stdout管道重定向到子进程来完成的。有更多的细节可以通过阅读this document