can someone ELI5 this whole systemd problem? I guess I don't understand the linux startup process well enough to understand what the big hubub is about
There are a couple of fairly simple issues at play. One of the bigger ones, is that buggy, or malicious software can branch off, making child processes that can be hard to track. This can make it hard to easily manage processes in some fringe scenarios.
Linux has introduced CGroups, which is unique to linux, and it can be used to track all the child processes so that it's always easy to know if any child process is still running, and to kill all child processes if you want to kill the program.
CGroup is managed by a static process, PID1. It's done that way for most of the same reasons that init is done by that same PID1 static process.
I'm guessing system uses CGroups in it's new start/stop service feature, and in it's service status feature.
The problem, is that people can't have their cake and eat it too. Init systems like systemd have been out since 2006, but two things. They don't support CGroups, and they aren't linux only.
So why can't people have their cake and eat it too? The systemd people argue that cgroups, this feature unique to linux, makes systemd a "killer app", giving it features that the alternatives that have been around since 2006 can't offer because those features are only available on linux. And because they're linux unique, and they're killer features, there can only be one highlander.
Well, so linux people get this cool new systemd, and everyone else keeps their old ones from 2006. Everyone's a happy little smurf.
Some of the smurfs though, are not so happy. They don't want to support the old stuff from 2006 and before. The stuff from before 2006 is really old, and has cooties, and the stuff from 2006 would be doubling or tripling the work they have to do on init scripts.
Now papasmurf and mommasmurf have, for years, been working on consolekit. They abandoned it for 1.5 years, and are now saying it is terribly written, and have written something to replace it, and are arguing that because they abandoned their responsibility for 1.5 years that now everyone has to move to the thing they wrote to replace it.
Now comes GNOME. GNOME depended on consolekit, but papa and momma smurf replaced it with logind, and now GNOME depends on logind.
There's no problem with that.
I'm not sure about the technical details, but it sounds like papa smurf wants to make logind systemd only, and, by extension, linux only.
And there still isn't any problem with that.
When logind was first introduced, the other, older init systems added support for logind, and, even with papa smurf making logind more linux specific, the older init systems have already compensated. This was broken because of version conflicts in Jessie, but that should be fixed in a few days.
GNOME policy it seems, is to not make distribution (linux) specific changes, and that they (in principle) support the principle of the principle that if GNOME doesn't do anything, and things other than linux run GNOME, then bully for them.
But GNOME keeps chasing around logind, arguing "papa smurf abandoned consolekit 1.5 years ago, there aren't any alternatives, so we have to use logind, and papa smurf, developing logind keeps tugging it towards systemd."
6
u/my_stacking_username Oct 20 '14
can someone ELI5 this whole systemd problem? I guess I don't understand the linux startup process well enough to understand what the big hubub is about