Hi Kurt,
I haven't focused on user services yet, so it's expected that you
are somewhat trailblazing (other people are using s6-rc to manage user
services already so they may be able to answer specific questions).
There are roughly three ways of doing what you want:
1. Purely manually with s6-rc-init and and compiling and linking
your set database;
2. Using the "repo" set of commands, which you seem to be doing since
you mention s6-rc-set-install;
3. Using the s6-frontend package, which is essentially a wrapper around
the repo commands.
For user services, I can recommend the third method, which should be
simpler, and I plan to add more support over time; and if something
doesn't work I absolutely want to know. 🙂
So my advice would be:
Before first use:
- put all your user services into a store (you already have done that)
- fill in a s6-frontend.conf file, probably in your XDG_CONFIG_HOME
- Add S6_FRONTEND_CONF=/path/to/s6-frontend.conf to the list of
environment variables to load at session start time
- run "s6 repo init"
- edit your set with "s6 set" commands, then install it with
"s6 live install --init"
and then, at startup:
- run s6-svscan, and wait for it to be ready (I will add sugar for
s6-svscan readiness at some point)
- run "s6 system boot", which will basically run "s6-rc-init" and
"s6-rc start default" for you.
Here is the documentation for s6-frontend:
https://skarnet.org/software/s6-frontend/
It's yet in the early stages, but normally, if your configuration
file is correct, it should already take care of a lot of the boilerplate
and make things simpler for you. And please do not hesitate to report
if you have trouble.
Good luck,
--
Laurent
Received on Thu Apr 23 2026 - 21:20:53 CEST