[systemd-devel] I wonder… why systemd provokes this amount of polarity and resistance

Dale R. Worley worley at alum.mit.edu
Tue Sep 23 12:13:08 PDT 2014


> From: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>

> More seriously, the idea of having shell scripts which you're going
> to modify to customize your setup is simply crazy. How robust would
> your changes be? How would you ever handle upgrades? How would more
> than one admin manage a machine without sitting in the same room?

I've been editing init scripts since around 1992, and I'll bet that a
lot of other people have, too.  It's reasonably robust, since you know
where the edits are and what they're for.  You upgrade by bringing
forward the edits into each new release you load.

But there's no way around that.  Suppose I'd like to adjust systemd's
behavior regarding mounting devices (as I do).  Is that going to be
*easier* to do if I have to download the C, modify it, and recompile?
I still have the same problems with upgrading, etc.

In the end, what wins is usually what makes it easiest to accomplish
the tasks people have at hand.  E.g., in many ways, C is an inferior
language to Pascal, but there are enough things that Pascal makes hard
or impossible that C won out.  Similarly with customizations.

> Again, this seems rather ignorant of the status quo. Between the blog
> posts and wiki documentation and the 164 man pages, systemd is rather
> copiously documented. Not to say that things can't be improved, but
> by Linux standards we are at least making an effort. Bugs for missing
> or unclear documentation and usually handled, and any patches for
> documentation are applied fairly quickly.

OK, I'd like to modify systemd's handling of mounts.  I've been told
only that the units that are created from /etc/fstab are created and
handled by the main systemd binary.  What documentation do I look at
that explains how systemd actually does that, what the relevant source
is, etc.?  With init scripts, I know it's somewhere in a script in
/etc/rc.d/init.d; searching for "mount" probably reveals a couple of
hundred lines of shell script within which the functionality is
hiding.

Another more generically useful pointer would be something that
explains what the algorithm that does the sequencing between units
*really* is.  I've heard breezy descriptions of what the various
dependency types mean, but I'm certain that there's a bunch of tricky
details which a lot of thought has been spent on.

Dale


More information about the systemd-devel mailing list