0

我需要的是通过某种 API 来控制 Linux 守护进程的可能性,例如检查某个守护进程是否正在运行、启动/停止/重新启动它等。

是否有任何提供此功能的 Linux 库?

4

2 回答 2

1

您也可以使用D-BusSNMP。然而,大多数守护进程只是将它们的 PID 写入到下面的某个文件中/var/run/并接受SIGTERM停止SIGHUP信号和重新加载其配置文件的信号(通常在 下/etc/)。

请注意,如果您采用通常的约定,即您的守护程序mydprog正在将其 pid 写入/var/run/mydprog.pid其他程序中,则可以在那里读取该 pid 并使用带有 0 信号的kill(2)来检查守护进程是否正在运行。/proc/1234/您还可以访问(其中 1234 是守护进程的 pid)下的一些伪文件,特别是/proc/1234/status,请参阅proc(5)了解更多信息。

您还可以设计您的守护程序,以便它通过提供状态信息来回答某些查询,例如在某些unix(7)tcp(7)套接字上使用某些JSONRPC协议。您可能会考虑通过一些 HTTP 服务器库(如libonion)或任何其他消息传递或远程过程调用协议来使用一些 HTTP 协议

于 2012-04-06T10:57:07.177 回答
0

简短的回答是否定的。
一些守护进程可能有一个 api,但这将是特定于该守护进程的。
您可以运行/etc/init.d/<daemon_name> start|stop|status以启动停止或获取大多数守护程序的状态

于 2012-04-06T10:34:48.640 回答