Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用于控制Linux守护进程的API_C++_Linux - Fatal编程技术网

C++ 用于控制Linux守护进程的API

C++ 用于控制Linux守护进程的API,c++,linux,C++,Linux,我需要的是通过某种API控制Linux守护进程的可能性,例如检查某个守护进程是否正在运行,启动/停止/重新启动它,等等 有提供此功能的Linux库吗?简短的回答是没有。 某些守护进程可能有一个api,但这是该守护进程特有的。 您可以运行/etc/init.d/start | stop | status来启动、停止或获取大多数守护进程的状态,您也可以使用或。但是,大多数守护进程只是将其PID写入/var/run/下的某个文件,并接受SIGTERM停止信号和SIGHUP信号以重新加载其配置文件(通常

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

有提供此功能的Linux库吗?

简短的回答是没有。
某些守护进程可能有一个api,但这是该守护进程特有的。
您可以运行
/etc/init.d/start | stop | status
来启动、停止或获取大多数守护进程的状态,您也可以使用或。但是,大多数守护进程只是将其PID写入
/var/run/
下的某个文件,并接受
SIGTERM
停止信号和
SIGHUP
信号以重新加载其配置文件(通常在
/etc/
下)

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


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

我希望使用系统(“…”)有更好的方法。所以没有Linux通用API?您可以使用POSIX信号来停止守护进程,但这是我能想到的最接近守护进程控制API的地方。