2

I have a Python service in systemd. I'd like to have it use the Python syslog module for logging if it's running in systemd vs. otherwise. Is there a reliable way to determine if I'm running in systemd or is there a better way of going about it?

jasonwryan
  • 71,734
  • 34
  • 193
  • 226
Naftuli Kay
  • 38,686
  • 85
  • 220
  • 311

1 Answers1

2

systemd will always have a PID of 1, so you can check if the parent PID is 1:

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

However, it's probally better to offer a command line flag --syslog and pass that with the systemd service, this way the user can select to use syslog even without the systemd service.

user530873
  • 257
  • 1
  • 8