Systemd unit file: Can/Should ExecStart and ExecStop run a script?

Lennart Poettering mzerqung at 0pointer.de
Wed Oct 19 20:39:43 UTC 2011


On Wed, 19.10.11 14:21, Richard Shaw (hobbes1069 at gmail.com) wrote:

> 
> Ok,  I took Jóhann's idea and ran with it, trying to preserve as much
> of the functionality of the sysv init script as I could. It turn out
> the need to change device permissions is only for people who want to
> run mythbackend as a real user, not root. I'm not sure if the
> following is valid, but here it is:
> 
> [Unit]
> Description=MythTV backend service
> After=network.target mysqld.service
> 
> [Service]
> Type=forking
> PIDFile=/var/run/mythbackend.pid
> EnvironmentFile=-/etc/sysconfig/mythbackend
> Environment=MYTHCONFDIR=${MYTHTV_HOME:-/etc/mythtv}
> Environment=HOME=${MYTHTV_HOME:-/etc/mythtv}
> Environment=MYTHBACKEND_USER=${MYTHBACKEND_USER:-root}

The ${...:-...} syntax is a shell syntax and not supported in systemd.

You should be able to set set Environment=foo=bar first, and then place
EnvironmentFile= after it, so that it can override the previous settings.

Lennart

-- 
Lennart Poettering - Red Hat, Inc.


More information about the devel mailing list