2012-04-06 60 views
0

我需要的是控制一個Linux守護進程儘管某種API的可能性,例如檢查,如果某個後臺進程正在運行,啓動/停止/重啓等API控制Linux後臺程序

有任何提供此功能的Linux庫?

回答

0

簡短的回答是沒有。
一些守護進程可能有一個API,但這將是特定的守護進程。
您可以運行/etc/init.d/<daemon_name> start|stop|status啓動,停止或獲得狀態最守護進程

+0

我希望有更好的方法,然後使用系統(「...」)。那麼沒有Linux通用API? – cpl 2012-04-06 10:37:27

+1

你可以使用POSIX信號來停止一個守護進程,但這是我能想到的一個守護進程控制API的近端。 – Sibster 2012-04-06 10:51:39

1

你也可以使用D-BusSNMP。但是,大多數守護進程只是將它們的PID寫入/var/run/下的某個文件,並接受SIGTERM信號停止,並且SIGHUP信號重新加載其配置文件(通常在/etc/之下)。

請注意,如果你採用的是你的守護程序mydprog正在寫它的PID在/var/run/mydprog.pid通常的慣例一些其他程序可以讀取PID那裏檢查,使用kill(2)用0信號,即守護進程運行。您也可以訪問/proc/1234/(其中1234是守護進程的pid)下的某些僞文件,特別是/proc/1234/status,有關更多信息,請參見proc(5)

你也可以設計你的守護進程,以便它回答,例如,在某些unix(7)tcp(7)套接字上使用一些JSONRPC協議,通過給出狀態信息來進行某些查詢。您可以考慮使用某些HTTP協議,通過一些HTTP服務器庫(如libonion)或任何其他消息傳遞或遠程過程調用協議。