[systemd-devel] Service with alternative configuration

Lennart Poettering lennart at poettering.net
Tue Mar 19 09:29:54 UTC 2019


On Mo, 18.03.19 22:01, Marv Lelgemann (144dbspl at gmail.com) wrote:

> Am Montag, 11. März 2019 schrieb Lennart Poettering <lennart at poettering.net
> >:
> > On Do, 07.03.19 14:03, Marv Lelgemann (144dbspl at gmail.com) wrote:
> >
> >> I have a systemd service unit of type "dbus". I would like to have the
> >> option to restart (or stop and start) the service with additional command
> >> line arguments in "ExecStart".
> >
> > Do something like this:
> >
> >     mkdir -p /etc/systemd/system/foo.service.d/
> >     cat > /etc/systemd/system/foo.service.d/override.conf <<EOF
> >     [Service]
> >     ExecStart=
> >     ExecStart=/path/to/my/command --with=a --new-commandline
> >     EOF
> >     systemctl daemon-reload
> >     systemctl restart foo.service
> >
> > i.e. add a drop-in that first resets ExecStart= to the empty list, and
> > the writes the new cmdline to use into it.
>
> Yes, that's a persistent overlay. I was looking for a runtime
> reconfiguration, something to restart a service on an embedded system in
> debug mode or similar use cases. A template unit with instances
> service at default and service at debug would have been OK, but left me with a
> dbus name conflict. SetEnvironment worked for me.

You can also create the drop-in in /run instead:

    mkdir -p /run/systemd/system/foo.service.d/
    cat > /run/systemd/system/foo.service.d/override.conf <<EOF
    …

systemd looks there too, and if you want to make changes that are
flushed out on reboot, that's the place to make your changes.

Lennart

--
Lennart Poettering, Berlin


More information about the systemd-devel mailing list