Since 4d05bf9 all rdeps to a service are automatically marked as "dirty" if the service becomes dirty. This works well to handle the original case:
ospfd.conf:
service [2345] <!pid/zebra> log ospfd -A 127.0.0.1 -u root -g root -- OSPF daemon
zebra.conf:
service [2345] <!> log zebra -A 127.0.0.1 -u root -g root -- Zebra Routing daemon
If zebra.conf is changed, we stop both zebra and ospfd on initctl reload.
Issue
However, the following case causes restart of iitod when syslogd (from the sysklogd project) is marked dirty. syslogd handles reloading its .conf file on SIGHUP, and unlike the zebra case, all state is kept.
sysklogd.conf:
service if:udevd nowarn env:-/etc/default/sysklogd <run/udevadm:5/success> \
[S0123456789] syslogd -F $SYSLOGD_ARGS -- System log daemon
iitod.conf:
service [S0123456789] <!pid/syslogd> iitod -- LED daemon
Since syslogd can handle itself properly, and the pid/syslogd condition is more of a system barrier (don't start before logging is up), it does not make sense to restart iitod or any service really that depends on syslogd.
This issue propose returning to the pre-2021 behavior where rdeps are paused (SIGSTOP'ed) while syslogd is reloaded and has reasserted its condition.
Background
Since 4d05bf9 all rdeps to a service are automatically marked as "dirty" if the service becomes dirty. This works well to handle the original case:
If
zebra.conf
is changed, we stop bothzebra
andospfd
oninitctl reload
.Issue
However, the following case causes restart of
iitod
whensyslogd
(from the sysklogd project) is marked dirty.syslogd
handles reloading its .conf file onSIGHUP
, and unlike the zebra case, all state is kept.Since
syslogd
can handle itself properly, and thepid/syslogd
condition is more of a system barrier (don't start before logging is up), it does not make sense to restartiitod
or any service really that depends onsyslogd
.This issue propose returning to the pre-2021 behavior where rdeps are paused (SIGSTOP'ed) while
syslogd
is reloaded and has reasserted its condition.