
On 13/10/2014 1:04 PM, Trent W. Buck wrote:
Andrew McGlashan writes:
At 2:45 he says that you tell systemd what the dependencies of things are, and systemd figures out at boot time what to do. Hey, couldn't that be done with a make file, with a whole less code and fanfare? LOL, make boot.
This is called startpar, and SuSE already wrote it, in 2003. Debian 7 uses it by default. Here's my halt dependency DAG:
# cat /etc/init.d/.depend.stop TARGETS = quotarpc mdadm busybox-syslogd smartmontools busybox-klogd urandom hwclock.sh quota sendsigs umountnfs.sh networking umountfs umountroot mdadm-raid mdadm-waitidle live halt reboot quota: quotarpc sendsigs: quotarpc quota mdadm busybox-klogd busybox-syslogd umountnfs.sh: quotarpc quota sendsigs busybox-klogd busybox-syslogd networking: umountnfs.sh umountfs: quotarpc quota networking umountnfs.sh mdadm busybox-klogd busybox-syslogd hwclock.sh urandom umountroot: umountfs mdadm-raid: umountfs mdadm mdadm-waitidle: umountroot live: umountroot halt: live umountroot mdadm-waitidle reboot: live umountroot mdadm-waitidle
It's invoked with these args by default:
/etc/init.d/rc:95: eval "$(startpar -p 4 -t 20 -T 3 -M $1 -P $previous -R $runlevel)"
That is, it runs up to four jobs per CPU in parallel. "The -M option switches startpar into a make(1) like behaviour."
You may also want to look at minit / cinit.
That's great, but the bigger problems with systemd is that it IS NOT JUST AN INIT system, it is much more already and aspires to be much more still. And no, none of Russell's /answers/ go anywhere near satisfying myself on the matters. A.