Control: tags -1 patch Hi,
thanks for reporting. On Fri, 30 Jan 2026 22:36:36 +0000 "S. Osipiuk" <[email protected]> wrote: > Package: runit-services > Version: 0.10.0 > > > With the line: > [ -d "/etc/sv/$name" ] && continue > the run script for dbus.dep-fixer attempts to check for the runit > service definition of the given service, so that it can be > (re)started using init.d, only if the runit definition does *not* > exist, but a sysv init script in /etc/rc2.d does exist. > > This check is flawed because /etc/sv does not contain the whole set > of services known to runit. Right, I completely forgot to update this.. I think matching what run_sysv_scripts currently does would address this --- a/sv/dbus.dep-fixer/run +++ b/sv/dbus.dep-fixer/run @@ -16,7 +16,15 @@ for script in '/etc/rc2.d/S'* ; do [ ! -x "$script" ] && continue path=$(realpath "$script") name=${path##*/} + [ -f /etc/runit/override-sysv.d/"$name".block ] && continue + [ -f /etc/runit/override-sysv.d/"$name".pkgblock ] && continue + if [ -f /etc/runit/override-sysv.d/"$name".sysv ]; then + "$script" start + continue + fi + [ -L "/etc/service/$name" ] && continue [ -d "/etc/sv/$name" ] && continue + [ -d "/usr/share/runit/sv.current/$name" ] && continue if grep -q "$name:.*dbus" /etc/init.d/.depend.start ; then "$script" start fi Best, Lorenzo > The runit-services package itself places > services in /usr/share/runit/sv/ and this directory must also be > checked to ensure correct behavior. > > As it is now, it's possible that a service is started by runit > directly, but also started again as an init.d script triggered by > dbus.dep-fixer because a check of /etc/sv will not find that service > (it is instead defined in /usr/share/runit/sv/) This kind of > double-start can cause issues and race conditions. > > The simplest fix is to check both directories, though even this is > imperfect. > > For a related bug about checking the existence of runit services so > that the equivalent init.d scripts are/aren't started, see #1022837.

