[CentOS] Redirect output from python script with systemd

Jonathan Billings billings at negate.org
Sat Jul 7 21:36:28 UTC 2018

On Jul 7, 2018, at 3:28 PM, C. L. Martinez <carlopmart at gmail.com> wrote:
> I need to redirect an output from python script that runs as a systemd service. I have tried to redirect its output in Exec statement without luck. I have tried to use StandardOutput and StandardError options also, but outpu log goes to /var/log/messages.
> Any tip?

Ideally, you should be using python’s “logging” library[1] to write to a file if you don’t want it going to the journal. But if you must make systemd handle it, use StandardOutput=file:/path/to/logfile[2]. Make sure your service has access to that file to write. 

You can’t use shell redirects in Exec lines since systemd units aren’t shell scripts. You can, of course have the service include:
Exec=/use/bin/bash -c “pythonscript > /var/log/script.log”

1. https://docs.python.org/2/library/logging.html
2. https://www.freedesktop.org/software/systemd/man/systemd.exec.html

Jonathan Billings <billings at negate.org>

More information about the CentOS mailing list