![systemd에서 실행 중인지 알 수 있나요? [복사]](https://linux55.com/image/86988/systemd%EC%97%90%EC%84%9C%20%EC%8B%A4%ED%96%89%20%EC%A4%91%EC%9D%B8%EC%A7%80%20%EC%95%8C%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
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