By default in runit the service runs inside the service directory, which would be /etc/service/foo for system-wide (root) services and /home/$USER/.service/foo for user services; In runit 2.3.1-3 I changed invoke-run to automatically chdir to /home/$USER for user-services (uid>=1000 and /home/$USER is found), to be consistent with systemd --user behaviour and try to fix issues like the one reported in #1032368 [1] (krunner) Then I realized that many rusncripts have things like 'sv d .' or use pwd, try to include conf file or looks for dirs inside the service directory and in general there is the expectation that those files/dirs are in the current working directory, so I reverted the change in 2.3.1-4. Right now I suspect only a tiny subset of user services needs to chdir to /home/$USER to work properly (other might rely on some $XDG_ var to find conf files, but we provide those with runit-user-session) so it's better to just use chpst to chdir in the exec line, when it's needed. the krunner issue in #1032368 might be fixed by chdir the dbus@user user service runscript (still to be tested); in general, as long as the number of user services that needs to chdir is low, I prefer to chdir in each rusncript; if the number of such runscripts becomes too high the I'll consider reverting the revert (chdir in invoke-run) I'll leave this open until there is an estimate of the number of user services that needs to chdir [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1032368