On Sat, 18 Jun 2016, Stefan Skoglund (lokal anv?ndare) wrote:
What i don't like about systemd is: the fud about
how easy it is to
write systemd unit files vs old shell script init.d/ditos .
In most simple cases, their argument is that it's easier to write a unit
file because you don't need to know shell script. However, as you point
out, that all starts to fall apart when the unit files, which ARE
basically the same format as Windows INI files (square bracket section
header with key-value pairs following). That's because INI files aren't a
Turing complete language and what you start seeing is edge cases where,
even using unit files, you still need management scripts. So, that leaves
you shaking your head asking why did Linux do all this crap in the first
place, if most of their "benefits" start to disintegrate as soon as your
init-need gets the least bit complicated.
Writing correct unit files for something as
complicated as NFS and
especially if running in an split NFS3/NFS4 environment with
Kerberos-authenticated id mapping between server and client is NOT
simple.
That's a great example, but only one that someone who digs in and
discovers things at a low level will notice. Most of the loud voices on
the pro-systemd side are people who don't interact with Linux at that
level. They are just overjoyed that it boots 2 seconds quicker. Nevermind
that ALL of the other alternative init systems boot faster than init. It's
easy to do once you bootgraph everything (and init could easily be
extended to do the same, and has been in some experimental cases).
Systemd doesn't ease the complexity of describing
dependencies,
As you know, you have to trace each unit-file's "wants" back to another
unit file and keep going until you hit one without any dependencies. It's
about the same turd hunt as looking at LSM tags (nothing lost, nothing
gained). That's just my opinion based on working with both. As you say, it
doesn't ease the process, nonetheless.
and i also have a suspicion that the systemd design
wasn't enough well
defined for something else to happen (good and consistent design results
in better documentation) - so the users got to have to do a bit of
frustrating trial-and-error while writing their own unit files.
I've heard that before from RHEL customers who were a bit shocked (and
didn't know anything about the systemd controversy).
> > forcing a cgroup policy on everything.
Okay, perhaps systemd is the
> > first program to actually *use* cgroups but if at some point in the
> > future you want to play around with it, well ... sorry. systemd is
> > in control there.
Also, just for fun, my comment on cgroups is that they were just fine and
working great well before systemd. Systemd forces everything to be
potentially managed by cgroups (ie.. systemd is process ID 1). So, some
would say this is better & easier. Me? I preferred the method of dorking
with the cgconfig, cgcreate, cgset, and raw control interfaces where
needed in /sys. That works great for /proc and the utilities that use it.
I don't need systemd to mitigate this process for me (and I don't like
it). Zero of the benefits of cgroups are tied directly to systemd (but
boy, don't ask the systemd guys to admit that), nor do they need to be,
nor is it impossible to put init under cgroups control (in fact it's quite
easy). Putting an abstraction layer around something means that someone
who's an "expert" now has to learn the abstraction layer AND the actual
tool. Having now done both, I at least feel comfortable stating my
position.
Which also affects something which i'm working
with now namely cfengine,
cgroup's requires cfengine's performer cf-agent if it wan't to rerun
cf-serverd (the policy file server in cfengine, but cf-serverd has other
usage too) to start cf-serverd via systemctl enable/start.
Yep, so you end up having to bifurcate your unit files, write scripts, or
some other "ugly" method (ugly in the eyes of systemd folks) that systemd
didn't really factor into reality before rolling out.
GNOME's adoption of systemd helps a bit.
They've adopted each other. I, for one, always hated GNOME anyway, (as
Liam suspected). Birds of a feather sure flocked together in this case.
However, that's a good thing. I like when things I dislike clump together.
It makes them easier to avoid.
It isn't good enough if the host is an virtual
machine on esv4, that
really requires something which can handle clock drift in a sane way ie
ntpd.
Well, some of the freakout is over the fact that parts of NTP are some
magical stuff and the maintainer is attempting to bow out. However, it
doesn't detract from your very valid point.
One functionality of questionable (or not so much)
functionality is the
hails and whistles socket activation. IN the cause of NFS it would
require a new network protocol.
Well, it wouldn't surprise me if Lennart just plunged ahead and wrote a
new protocol (as long as it only works on Linux and has plenty of suck).
The guy isn't short on energy. I'll give him that.
The CFengine developers has discussed using socket
activation for
cf-serverd but it is really infeasible.
As you know, the method for socket activation is completely different from
inetd/xinetd and as you point out, requires devs to maintain *both* now,
if they want to be relevant outside of Linux.
It would basically force them to maintain two
completely different
cf-serverd implementations one for UNIX,systemd-less Linux and Windows
and one for systemd-ified Linux.
Great example. So, we end up with a significant portion of the open source
software world being forced into a choice they never signed on for. Do
they focus on Linux and thus use extra cycles to create unit files and
other systemd cruft or do they stick with init scripts and get "left
behind" by folks who claim there is no problem whatsoever with using init
scripts with systemd (yeah, they work, but it drives the systemd guys
crazy).
Systemd-style socket activation in new
applications/servers is an
possibility if a hard dependency on systemd is ok.
Yep. It just creates more work for folks wanting to write really open
software. Now they have to include extra crap for Linux users or face the
wrath of the Potteringites and possible exclusion from all the distros who
drank the whole bottle of systemd koolaid. Of course, they can always
maintain both bits, and waste time they could be putting into their core
software, but hey, it's "progress" right? Yah, I'm sure they won't
mind.
:-<
-Swift