【问题标题】:How can a program detect if it is running as a systemd daemon?程序如何检测它是否作为 systemd 守护进程运行?
【发布时间】:2016-09-07 11:04:21
【问题描述】:

有什么方法可以在程序中检测到它是由 systemd 作为守护进程运行的吗?

系统 API

sd_booted()

用于检测整个系统是否由 systemd 启动,但不说明程序本身。

谢谢

【问题讨论】:

  • 检查它的ppid(父进程ID)也许?
  • 我认为检测这不是一个好主意。我会改为有一些程序参数约定(例如,假设它已由 systemd 启动,如果您传递 --started-from-systemd,并配置您的 systemd 以传递该参数)。
  • /proc/<pid>/cgroupsystemd 条目对于 systemd 运行的服务似乎有所不同(我快速查看了我的树莓派)。

标签: linux systemd


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您可以在守护程序的服务文件中设置一个神奇的环境变量并查找此变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-02
      • 1970-01-01
      • 1970-01-01
      • 2013-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多