systemd에서 실행 중인지 알 수 있나요? [복사]

systemd에서 실행 중인지 알 수 있나요? [복사]

systemd에 Python 서비스가 있습니다. systemd에서 실행 중인 경우 syslog로깅을 위해 Python 모듈을 사용하고, 그렇지 않은 경우에는 Python 모듈을 사용하고 싶습니다. systemd에서 실행 중인지 확인할 수 있는 신뢰할 수 있는 방법이 있습니까, 아니면 더 좋은 방법이 있습니까?

답변1

systemdPID는 항상 1이므로 상위 PID가 1인지 확인할 수 있습니다.

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

그러나 서비스를 사용할 수 없는 경우에도 사용자가 syslog를 사용하도록 선택할 수 있도록 명령줄 플래그를 제공 --syslog하고 이를 서비스를 통해 전달하는 것이 더 좋습니다 .systemdsystemd

관련 정보