我在 systemd 中有一个 Python 服务。如果它在 systemd 中运行,我想让它使用 Pythonsyslog
模块进行日志记录,否则。有没有可靠的方法来确定我是否在 systemd 中运行,或者有更好的方法吗?
答案1
systemd
PID 始终为 1,因此您可以检查父 PID 是否为 1:
import psutil, os
if psutil.Process(os.getpid()).ppid() == 1:
# We are using systemd
然而,最好提供一个命令行标志--syslog
并通过服务传递它systemd
,这样用户即使没有该systemd
服务也可以选择使用系统日志。