Package: runit Version: 2.1.2-59 Severity: normal Dear Maintainer,
Some package call invoke-rc.d for theirs functions. For example, anacron have installed /etc/cron.d/anacron which uses `/usr/sbin/invoke-rc.d anacron start' on non-systemd systems. And on non-systemd systems, `invoke-rc.d script action' is translated to `/etc/init.d/script action'. For example: $ sudo sh -x /usr/sbin/invoke-rc.d anacron start # skipped many lines + /etc/init.d/anacron start + exit 0 Some package actually call `/etc/init.d/script action' directly. For example, stunnel4 have installed /etc/logrotate.d/stunnel4 which calls `/etc/init.d/stunnel4 reopen-logs'. (Although there is no native runit service for stunnel4 in Debian currently.) On systems using runit as init, due to /lib/lsb/init-functions.d/40-runit, `/etc/init.d/script action' is a no-op by default if there is a corresponding native runit service. This will breaks the functions of those packages. For example: $ sudo sh -x /etc/init.d/anacron start # skipped many lines + [ ! -e /etc/runit/lsb.runit.mask ] + [ -d /etc/sv/anacron ] + [ -d /usr/share/runit/sv.current/anacron ] + [ -h /etc/service/anacron ] + [ -z ] + [ -e /usr/share/runit/meta/anacron/installed ] + [ -e /etc/sv/anacron/.meta/bin ] + [ -e /usr/share/runit/sv.current/anacron/.meta/bin ] + exit 0 Maybe `invoke-rc.d script action' and `/etc/init.d/script action' should be forwarded to the corresponding native runit service to fix this bug. By the way, it is mentioned in the header of /lib/lsb/init-functions.d/40-runit that if /etc/runit/lsb.runit.forward is set, `/etc/init.d/script action' will be forwarded to sv "if /etc/sv/<service> exists and is enabled". However I do not see this is implemented in the current version of 40-runit.invoke-rc.d And another note. The orphan-sysvinit-scripts package have installed /lib/rsyslog/rsyslog-rotate which calls `invoke-rc.d rsyslog rotate' on non-systemd systems. As there is no such rotate action in sv, the rotate action will be forwarded to /etc/init.d/rsyslog, but that will not work if the native runit service of rsyslog is running. After looked into /etc/init.d/rsyslog, I find that `/etc/init.d/rsyslog rotate' is the same as `sv hup rsyslog' and `sv reload rsyslog'. Maybe assists from the Maintainer of the orphan-sysvinit-scripts package is needed to make the lograte for rsyslog functional in runit-init systems. Regards, Jun MO -- System Information: Debian Release: trixie/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 6.7.12-amd64 (SMP w/2 CPU threads; PREEMPT) Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en Shell: /bin/sh linked to /usr/bin/dash Init: runit (via /run/runit.stopit) LSM: AppArmor: enabled Versions of packages runit depends on: ii libc6 2.38-11 ii runit-helper 2.16.2 ii sysuser-helper 1.3.9+really1.4.3 Versions of packages runit recommends: ii runit-init 2.1.2-59 Versions of packages runit suggests: ii runit-services 0.7.2 pn socklog <none> pn ucspi-unix <none> ii zsh 5.9-6+b1 -- Configuration Files: /etc/runit/1 changed [not included] /etc/runit/2 changed [not included] /etc/runit/3 changed [not included] -- no debconf information