【发布时间】:2016-09-07 11:04:21
【问题描述】:
有什么方法可以在程序中检测到它是由 systemd 作为守护进程运行的吗?
系统 API
sd_booted()
用于检测整个系统是否由 systemd 启动,但不说明程序本身。
谢谢
【问题讨论】:
-
检查它的
ppid(父进程ID)也许? -
我认为检测这不是一个好主意。我会改为有一些程序参数约定(例如,假设它已由
systemd启动,如果您传递--started-from-systemd,并配置您的 systemd 以传递该参数)。 -
/proc/<pid>/cgroup的systemd条目对于 systemd 运行的服务似乎有所不同(我快速查看了我的树莓派)。