API控制Linux守护进程

API to control Linux daemon

本文关键字:进程 守护 Linux 控制 API      更新时间:2023-10-16

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

有没有提供这种功能的Linux库?

您也可以使用D-Bus或SNMP。然而,大多数守护进程只是将它们的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服务器库(如libonion)或任何其他消息传递或远程过程调用协议来使用某些HTTP协议。

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