systemd: please stop trying to take over the world :)

Bill Nottingham notting at
Tue Jun 14 19:00:59 UTC 2011

Denys Vlasenko (dvlasenk at said: 
> > In this case you are not better/worse than before, once the network will
> > come up you'll add a script to change the hostname.
> > Setting it earlier in systemd makes no difference.
> You continue to avoid answering my question: WHY systemd, a service
> management tool, bothers with setting hostname? It's not its task!

It's part of the task of booting the system. For example, rc.sysinit,
in order:

1) mount assorted psuedo-filesystems
2) print a welcome message
3) start udev
   a.) set clock
   b.) initialize console settings
   c.) bring up loopback
4) load ancient legacy module scripts
5) run sysctl
6) set hostname
... whole bunch of other stuff after this elided ...

None of these were user-modifiable actions; attempting to change any of
these is a void-your-warranty-you-get-all-pieces action.

So, in migrating to systemd, we have an opportunity to examine each of
these actions that's done at boot, and decide the most appopriate place
for it.

For the above items, 1, 2, 3a, 3c, and 6 are done in systemd itself. 3, 3b,
4, and 5 are done as standard systemd units.

If you're seriously arguing that we should have instead made all these
things configurable, I'm not really interested - they weren't before, and
making them configurable isn't really useful for making a standardized OS

If you want to discuss which is done in which place during startup, we
can do that, but at that point we're arguing over details which aren't all
that relevant.

> Slide 50:
> "Shell is evil"
> "Move to systemd, daemons, kernel, udev, ..."
> Again, shell, a tool which endured for 40+ years, is suddenly "evil".
> I don't think this being the consensus.

It's a needless pejorative, yes. But it doesn't change the fact that
shell is highly overused in our prior boot process. ~1000 lines
of initscripts + functions to cover what is essentially 'exec atd'
is overkill, and isn't really needed.

> Slide 79:
> "Substantial coverage of basic OS boot-up tasks, including fsck,
> mount, quota, hwclock, readahead, tmpfiles, random-seed, console,
> static module loading, early syslog, plymouth, shutdown, kexec,
> SELinux, initrd+initrd-less boots, cryptsetup, ..."
> That's what I refer to by "taking over the world".

Yes, it's obviously taking over the world by:

- changing where fsck is called from point A to point B
- changing where mount is called from point A to point B
- loading policy from init, *just as it was with SysVinit*
- adding features to support initrd-less boots (which we didn't have
- handling shutdown (WTF is your init system supposed to do if not


More information about the devel mailing list