systemd에 Python 서비스가 있습니다. systemd에서 실행 중인 경우 syslog
로깅을 위해 Python 모듈을 사용하고, 그렇지 않은 경우에는 Python 모듈을 사용하고 싶습니다. systemd에서 실행 중인지 확인할 수 있는 신뢰할 수 있는 방법이 있습니까, 아니면 더 좋은 방법이 있습니까?
답변1
systemd
PID는 항상 1이므로 상위 PID가 1인지 확인할 수 있습니다.
import psutil, os
if psutil.Process(os.getpid()).ppid() == 1:
# We are using systemd
그러나 서비스를 사용할 수 없는 경우에도 사용자가 syslog를 사용하도록 선택할 수 있도록 명령줄 플래그를 제공 --syslog
하고 이를 서비스를 통해 전달하는 것이 더 좋습니다 .systemd
systemd