the following stop() function is run by /etc/init.d/svscan: stop() { ebegin "Stopping service scan services" svc -dx /service/* 2>/dev/null eend $? ebegin "Stopping service scan logging" svc -dx /service/*/log 2>/dev/null eend $? ebegin "Stopping service scan" start-stop-daemon --stop --exec /usr/bin/svscan \ --pidfile /var/run/svscan.pid eend $? } in between the time the supervise processes are killed by svc -dx, and the time the svscan process is killed, svscan may spawn new supervise processes, since that's what it's supposed to do every 5 seconds. so you can potentially wind up with a lot of unkilled daemons at shutdown time. the fix is simple, just kill svscan first: stop() { ebegin "Stopping service scan" start-stop-daemon --stop --exec /usr/bin/svscan \ --pidfile /var/run/svscan.pid eend $? ebegin "Stopping service scan services" svc -dx /service/* 2>/dev/null eend $? ebegin "Stopping service scan logging" svc -dx /service/*/log 2>/dev/null eend $? }
No idea what installs /etc/init.d/svscan; reopen with exact ebuild name and version.
sys-process/daemontools-0.76-r5
fixed in 0.76-r6