Subject: Starting applications with OpenRC user service

From: Faustin Lammler <[email-masked]>
Date: Thu, 5 Jun 2025 15:30:14 +0200

Hi!
I have recently upgraded to 3.22. First of all I am again super happy
that it went so smooth! Everything is working out of the box (with some
nice improvement like the higher resolution in ttys).

Now I am trying to move some GUI starting application to OpenRC like
suggested in the release note. I did not encounter any pb with kanshi or
wlsunset.

But pipewire or mako does not want to cooperate and in the case of
pipewire I still need to launch it from sway config with `exec
/usr/libexec/pipewire-launcher`.

In the case or mako, which I spend some time to debug (it seems like
something easier to debug than pipewire for me), I believe that an
environment variable is missing. If I follow what's suggested in
https://wiki.alpinelinux.org/wiki/Mako, the service does not start and
gives the following error:
| [..] daemon.info supervise-daemon[22575]: Child command line: /usr/bin/mako
| [..] daemon.err mako: Failed to connect to user bus: No such file or directory
| [..] daemon.warn supervise-daemon[22311]: /usr/bin/mako, pid 22575, exited with return code 1

Which seems to be caused by openrc init script not being able to access
the DBUS_SESSION_BUS_ADDRESS env variable. When I manually add the env
variable into the init script, the service starts and is stable.

After some research, apparently this seems to be under work upstream:
https://github.com/OpenRC/openrc/discussions/779
https://github.com/OpenRC/openrc/pull/782

I know that the release note states that 'User services are currently
experimental', but I thought I should share my findings.

Cheers!

-- 
Faustin
GPG: F652 BCD1 1AA8 8975 F010 48A5 390A 2F27 832A 5C79