Our great sponsors
-
I did some digging and found this repository with some examples for runit scripts, but they needed a little bit of adjusting; specifically they make use of the deprecated pipewire-media-session. After adjusting them, I symlinked them in to my runsvdir and … still nothing! At this point, I almost decided to just go back to the shell script and let it go, but the next day I was picking at the problem again and found that the approach for per-user services as described in the void docs puts your user services into an environment that is isolated from your user session. You can take a look at the env of a process in htop, and if you look at any of your usual user-processes you'll probably see a long list of environment variables, but the user-level runsv process started by the system-level runit only knows about the variables you export in /etc/sv/runsvdir-your-username/run like HOME and USER. This effectively hamstrings services that need to run like other "normal" user processes.
-
Thanks for pointing this out. I've had a look at some other ways of ensuring that wireplumber and pipewire-pulse only start when pipewire is already up, but I do think that sv check is the best solution here that doesn't involve using an external tool like awk or cut to parse the output of sv status or sv check. NetworkManager for instance, uses this same approach to wait for dbus.
-
InfluxDB
Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.