I also want to just quickly summarize my position here, since some very
long posts were written on this and linked into the thread by someone.
I have only three issues with SystemD in order of diminishing
1) it is very hard to get up to speed with systemd, you run up against
walls where you don't know how to proceed
2) the lack of flexibility mentioned by Russ and Simon. It is very hard
to schedule something for shutdown alone, for instance.
3) the bad command environment; journalctl, systemctl, all of the -ctl
names are hard to use. It is not user friendly, you get confused, you
type the wrong things; apt (and its verbs) is like the opposite of that;
easy, fast, quick to learn, quick to remember.
For me all of that points to a bad design and I haven't read the
criticism that was also linked in this thread (by Jonathan de Boyne
Pollard, on 01-09 (september)).
Personally I would not have made the choice to go with SystemD (site
wide, so to speak) because I think SysV init can be improved and I
disagree with the notion that it could not be used as the basis for
something that would provide more standardized services, but of course I
never went there as a person. Precisely because it is based on scripts
(while also having descriptive elements) it can be evolved into
something into something that does a better job than it does now until
it would get to the point where you started replacing scripts with
something more solid after you got the model for that right, but of
course I never did any of that.
The main issue I have with it personally is that once you have a higher
level functionality built on a bad model it will be impossible to change
it. As long as you stick to the lesser-high level functionality based on
a good model, you are still free to go in whatever you like.
The SystemD integration has cut off development paths and trackts and
makes it virtually impossible to go back after the fact and take another
path still. It's a consolidation but it means the interest for an
alternative path will become less and less while all the while having a
system built on a very bad model with deep issues relating to the many
failure cases SystemD can have and that I witness quite often.
Just today someone ran into the problem of trying to mount some local
filesystems on top of NFS but it couldn't be done because SystemD orders
remote mounts after local mounts. The unaware person will not have a
single clue as to why it is not working. There are more directives that
get conveniently broken by SystemD when it messes or interferes with its
ordering mechanics. People continually run into things that do not work
as expected and this "breach of contract" is the biggest issue.
Most of the time you will simply not know how to do something until you
ask the developers or someone with experience.
And then they will mention caveat #2311. But it was impossible to know
beforehand and that turns it into an oblique system. And troubleshooting
boot failures is rather expensive...
So for me personally it is a very independable system with a high risk
of breaking the moment you change something, anything, whteher it is
custom encryption, or some mount, or anything else. Shutdown can take
very long for reasons you don't know and have almost no way to
troubleshoot. And this is just my personal impression, my personal
experience that I have to deal with, nothing else.
Just stating what it is for me without any comparison to any other
system. I mean the things I run into with Systemd.
These things stand on their own and are just true, for me, they have
happened, all of them. That's all, I just think I am worse off because a
/bad/ high level feature had closed off development paths to
alternatives since pretty much no one is going to be interested in it,
or that there would be developers interested in it, nor that it becomes
easier to run these systems, and have them available for yourself to
So if I am at any time vehemently arguing for the non-throwing-away of
some script, it is also because I see opportunities for myself grow
dimmer by the minute... That's all. And I can't fight that because I'm
not "there" and I am not in that position to actually do something with
But the chances of /getting/ to that position become worse. So
personally, for me, not only as a user, but also as a developer, I see
conditions worsen. I like SysV-init better because it has more
potential, you can do more with it, you can go directions with it. It is
an open-ended story, but SystemD is not.
I can't take SystemD and turn it into something else. That's practically
impossible. I could have taken SysV and turned it into something else,
easily. I wasn't there yet, but I could have gotten there in time.
But the chances of that ever taking place (within reasonable time) are
now probably 20% of what they were before. I like systems in their early
stages of development because it is an unwritten book and you can still
write it. The moment it is written, and it is written as a very very bad
story, what can you still do with it? Primitive systems, primitive
building blocks, is one thing.
Advanced systems that have developed into the wrong direction, is quite
another. You now stand before the task of first dismantling the machine.
It is more work to get back to where you were before.
And I find myself constantly confronted with the development of advanced
but malformed system that I will need to dismantle before I can do
anything with it. I am constantly confronted with the need to bring
systems back to their basics but I cannot do it alone because the people
creating the malformed system are with 100s and they are getting paid
for it as well and have enough to eat as well... and I don't, really.
For me it is just a runaway race, a system out of control, cajeering
into all kinds of bad directions, and pretty much every new development
is terrible to me because I disagree with its fundamentals, and now I
will first need to spend terrible amounts of time learning the ropes of
the new system with energy I do not have.
And pretty much every new development is a set-back to me because they
are all just terribly designed systems but they are higher level than
what existed before and therefore harder to use for your own projects.
And it is just hopeless.
That's all. And I don't really need any 'advice' here so please refrain
from giving any, I just lost my words while writing this so it feels a
bit weird this.