2010-04-21 170 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