Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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
Linux 程序如何检测它是否作为systemd守护进程运行?_Linux_Systemd - Fatal编程技术网

Linux 程序如何检测它是否作为systemd守护进程运行?

Linux 程序如何检测它是否作为systemd守护进程运行?,linux,systemd,Linux,Systemd,有没有办法在程序中检测到它是由systemd作为守护进程运行的 systemd API sd_booted() 用于检测整个系统是否由systemd启动,但不涉及程序本身 谢谢,您可以在守护进程的服务文件中设置一个magic环境变量,并查找该变量。获取父进程id,然后查看该进程是否为systemd检查其ppid(父进程id)也许?我认为检测它不是一个好主意。相反,我会使用一些程序参数约定(例如,如果您传递了——从systemd开始,则假定它是由systemd启动的,并将您的systemd配置为

有没有办法在程序中检测到它是由systemd作为守护进程运行的

systemd API

sd_booted()
用于检测整个系统是否由systemd启动,但不涉及程序本身


谢谢,您可以在守护进程的服务文件中设置一个magic环境变量,并查找该变量。

获取父进程id,然后查看该进程是否为
systemd

检查其
ppid
(父进程id)也许?我认为检测它不是一个好主意。相反,我会使用一些程序参数约定(例如,如果您传递了
——从systemd开始,则假定它是由
systemd
启动的,并将您的systemd配置为传递该参数)。对于由systemd运行的服务,
/proc//cgroup
systemd
条目似乎有所不同(我快速地看了看我的树莓皮)。