[TriLUG] Making a User Specific Runit: 9/3/2025 7pm Eastern Daylight time
Steve Litt via TriLUG
trilug at trilug.org
Mon Sep 1 17:53:26 EDT 2025
Hi all,
Where: GoLUG Online: https://meet.jit.si/golug
When: Wednesday, 9/3/2025 7pm sharp Eastern Daylight time
Arrive 15 minutes early for Microphone check & discussion
Who: Steve Litt, Troubleshooter, Developer, Tech Writer
What: Making a User Specific Runit
Runit is two different things:
1) An init system
2) A daemon supervisor
This presentation focuses exclusively on #2, and is init system
agnostic. You can deploy a user specific runit on any Unix-like
computer, whether the system inits with sysvinit, systemd, runit, s3,
OpenRC, the BSD init system, Epoch, Suckless Init with an rc script, or
GNU Shepherd.
The daemon supervisor part of runit supervises a group of daemons (long
running background processes). A User Specific Runit is the supervisor
part of runit, if and only if it is run by a normal user, runs programs
as that normal user, and is controlled by that normal user. It's
remarkably easy to implement.
There are many ways of running User Specific Daemons, including from
the init system itself and from cron jobs. Advantages a User
Specific Runit has over doing it from the init system or cron include:
1) It can run after X has been instantiated by that user, so no
~/.Xauthority games are necessary to produce graphical daemons or
daemons that fork off graphical windows.
2) It happens *after* the user logged in, so it has the right
environment for the specific user.
3) It runs your home-grown C, Python, etc programs that would run on a
terminal, in the background, without requiring your home-grown
program to "background itself".
4) If it's forked from ~/.xinitrc then it has absolutely no interaction
with your init system. It does one thing and does it well.
5) It's a nicer, more controllable way to control Pulseaudio. This will
be demonstrated during the presentation.
6) It's perfect for a one-user power workstation.
7) Multiple users can each have their own personal Runit.
8) If a daemon crashes, your personal Runit restarts the daemon.
9) It can be built so that daemons of your choice have their own log
files.
The presentation will draw heavily from a website that's now very
incomplete but will be very useful by Wednesday morning:
https://www.troubleshooters.com/linux/init/normal_user_runit.htm
The presentation will build a personal runit from scratch.
If you want tighter and finer control over your personal computer,
you'll want to attend this presentation.
SteveT
Steve Litt
GoLUG Publicity Coordinator
More information about the TriLUG
mailing list