Hacker News new | ask | show | jobs
by RVuRnvbM2e 4018 days ago

  systemd-analyze dot --order | dot -Tsvg > /tmp/system.svg
The resulting dependency diagram may look complex, but consider that there is no equivalent functionality for SysV init scripts despite the fact that they have the same level of inter-dependent complexity.
3 comments

The complexity of the dependency graph produced by system-analyze is not present in most sysv init systems. That complexity is mostly a reflection of the efforts to make system services boot in parallel. Most sysv init scripts were blocking and executed serially, which is what allowed the simple filename prefixes to be used for ordering.

What to see your entire sysv init, as it will run every single time?

    ls -1 /etc/rc3.d/[SK]* /etc/rc.local | xargs -- cat | less
Obviously, substitute whichever runlevel you're concerned with.
Whether using a dependency system at all for the purpose of ordering and expressing relationships between daemons is the best approach is beyond the scope of this reply, but I just want to say that most modern sysvinit deployments did in fact have service dependencies, through the use of LSB initscript headers that were parsed by insserv(8).

It was kludgy, but there.

Previously on arch linux I had a list of 7 to 10 services in rc.conf that started serially in less than 2 seconds. That was pretty damn simple. Besides that there was inittab which just had the gettys and the main startup script.