我能知道我是否在 systemd 中运行吗?

我能知道我是否在 systemd 中运行吗?

我在 systemd 中有一个 Python 服务。如果它在 systemd 中运行,我想让它使用 Pythonsyslog模块进行日志记录,否则。有没有可靠的方法来确定我是否在 systemd 中运行,或者有更好的方法吗?

答案1

systemdPID 始终为 1,因此您可以检查父 PID 是否为 1:

import psutil, os
if psutil.Process(os.getpid()).ppid() == 1:
    # We are using systemd

然而,最好提供一个命令行标志--syslog并通过服务传递它systemd,这样用户即使没有该systemd服务也可以选择使用系统日志。

相关内容