[systemd-devel] Can I provide separate enabling for dbus-activation and "normal" start ?

Lennart Poettering lennart at poettering.net
Fri Feb 23 09:19:12 UTC 2024


On Do, 22.02.24 17:09, Max Gautier (mg at max.gautier.name) wrote:

> Is it possible when writing a dbus-activable service to provide two
> separate and independent ways to enable it ?
>
> The D-Bus service file would for instance be:
> [D-BUS Service]
> Name=org.freedesktop.Notifications
> Exec=notification-daemon
> SystemdService=dbus-org.freedesktop.Notifications.service
>
> The systemd service:
> [Unit]
> PartOf=graphical-session.target
> After=graphical-session.target
>
> [Service]
> Type=dbus
> BusName=org.freedesktop.Notifications
> ExecStart=notification-daemon
>
> [Install]
> Alias=dbus-org.freedesktop.Notifications.service
> WantedBy=graphical-session.target
>
>
> With that systemd service file, `systemctl enable` would cause the
> service to be started by graphical-session.target and by
> dbus-activation; but it is possible to have two separate enable
> commands, one which would enable the dbus activation, one the
> graphical-session start ?
>
> I suppose I should have two separate unit files but I'm not completely
> sure how to do that without copying the whole file (i.e, is there some
> Install/Unit relation I can use for that ?)

No, in systemd there's only one "systemctl enable" and it applies the
[Install] section of the unit file, and that's really all there is.

You can probably add two unit files and use Alias= so that they pick a
common name as alias.

But one unit cannot have two distinct [Install] sections, if that's
what you are looking for.

Lennart

--
Lennart Poettering, Berlin


More information about the systemd-devel mailing list