Earlier quoted context omitted.
Classic sysvinit or BSD-style init doesn't rely upon this sort of functionality at all. Just some simple scripts. No need to complicate it any further. A few signals are all that are needed.
Simple scripts? Have you looked at the shit in /etc/init.d in a modern linux distribution? $ wc -l * | sort -n | tail 274 exim4 286 apache2 290 dnsmasq 298 nfs-common 350 clamav-freshclam 364 udev 386 checkroot.sh 420 clamav-daemon 465 clamav-milter 9893 total If you look into these, you'll find tons of near-duplicate code between scripts, and frequently every script reinvents the wheel in one way or another.
Simplicity really does buy me something.
$ wc -l /usr/src/sbin/init/init.c
1450 /usr/src/sbin/init/init.c
$ wc -l /etc/rc
537 /etc/rc
$ wc -l /etc/rc.d/*
21 /etc/rc.d/amd
11 /etc/rc.d/apmd
21 /etc/rc.d/avahi_daemon
21 /etc/rc.d/avahi_dnsconfd
11 /etc/rc.d/bgpd
15 /etc/rc.d/bootparamd
9 /etc/rc.d/cron
14 /etc/rc.d/cvsyncd
16 /etc/rc.d/dbus_daemon
15 /etc/rc.d/dhcpd
11 /etc/rc.d/dhcrelay
12 /etc/rc.d/dvmrpd
11 /etc/rc.d/ftpd
11 /etc/rc.d/ftpproxy
9 /etc/rc.d/hostapd
9 /etc/rc.d/hotplugd
11 /etc/rc.d/httpd
13 /etc/rc.d/identd
9 /etc/rc.d/ifstated
17 /etc/rc.d/iked
9 /etc/rc.d/inetd
17 /etc/rc.d/isakmpd
17 /etc/rc.d/iscsid
11 /etc/rc.d/ldapd
15 /etc/rc.d/ldattach
11 /etc/rc.d/ldomd
11 /etc/rc.d/ldpd
11 /etc/rc.d/lockd
9 /etc/rc.d/lpd
16 /etc/rc.d/mopd
17 /etc/rc.d/mountd
9 /etc/rc.d/mrouted
18 /etc/rc.d/nfsd
11 /etc/rc.d/npppd
38 /etc/rc.d/nsd
12 /etc/rc.d/ntpd
11 /etc/rc.d/ospf6d
11 /etc/rc.d/ospfd
24 /etc/rc.d/pflogd
11 /etc/rc.d/popa3d
11 /etc/rc.d/portmap
16 /etc/rc.d/rarpd
9 /etc/rc.d/rbootd
289 /etc/rc.d/rc.subr
11 /etc/rc.d/relayd
11 /etc/rc.d/ripd
9 /etc/rc.d/route6d
11 /etc/rc.d/rsyncd
11 /etc/rc.d/rtadvd
11 /etc/rc.d/rtsold
9 /etc/rc.d/rwhod
11 /etc/rc.d/sasyncd
13 /etc/rc.d/sendmail
9 /etc/rc.d/sensorsd
11 /etc/rc.d/slowcgi
13 /etc/rc.d/smtpd
11 /etc/rc.d/sndiod
12 /etc/rc.d/snmpd
26 /etc/rc.d/spamd
25 /etc/rc.d/spamlogd
13 /etc/rc.d/sshd
11 /etc/rc.d/statd
15 /etc/rc.d/syslogd
12 /etc/rc.d/tftpd
11 /etc/rc.d/tftpproxy
9 /etc/rc.d/tor
32 /etc/rc.d/unbound
9 /etc/rc.d/watchdogd
11 /etc/rc.d/wsmoused
9 /etc/rc.d/xdm
16 /etc/rc.d/ypbind
11 /etc/rc.d/ypldap
28 /etc/rc.d/yppasswdd
13 /etc/rc.d/ypserv
1285 total