Ask Slashdot: Practical Alternatives To Systemd?
First time accepted submitter systemDead (3645325) writes "I looked mostly with disinterest at Debian's decision last February to switch to
systemd as the default init system for their future operating system releases. The Debian GNU/Linux distribution is, after all, famous for allowing users greater freedom to choose what system components they want to install. This appeared to be the case with the init system, given the presence of packages such as sysvinit-core, upstart, and even openrc as alternatives to systemd.
Unfortunately, while still theoretically possible, installing an alternative init system means doing without a number of useful, even essential system programs. By design, systemd appears to be a full-blown everything-including-the-kitchen-sink solution to the relatively simple problem of starting up a Unix-like system. Systemd, for example, is a hard-coded dependency for installing Network Manager, probably the most user-friendly way for a desktop Linux system to connect to a wireless or wired network. Just this week, I woke up to find out that systemd had become a dependency for running PolicyKit, the suite of programs responsible for user privileges and permissions in a typical Linux desktop.
I was able to replace Network Manager with connman, a lightweight program originally developed for mobile devices. But with systemd infecting even the PolicyKit framework, I find myself faced with a dilemma. Should I just let systemd take over my entire system, or should I retreat to my old terminal-based computing in the hope that the horde of the systemDead don't take over the Linux kernel itself?
What are your plans for working with or working around systemd? Are there any mainstream GNU/Linux distros that haven't adopted and have no plans of migrating to systemd? Or is migrating to one of the bigger BSD systems the better and more future-proof solution?"
Unfortunately, while still theoretically possible, installing an alternative init system means doing without a number of useful, even essential system programs. By design, systemd appears to be a full-blown everything-including-the-kitchen-sink solution to the relatively simple problem of starting up a Unix-like system. Systemd, for example, is a hard-coded dependency for installing Network Manager, probably the most user-friendly way for a desktop Linux system to connect to a wireless or wired network. Just this week, I woke up to find out that systemd had become a dependency for running PolicyKit, the suite of programs responsible for user privileges and permissions in a typical Linux desktop.
I was able to replace Network Manager with connman, a lightweight program originally developed for mobile devices. But with systemd infecting even the PolicyKit framework, I find myself faced with a dilemma. Should I just let systemd take over my entire system, or should I retreat to my old terminal-based computing in the hope that the horde of the systemDead don't take over the Linux kernel itself?
What are your plans for working with or working around systemd? Are there any mainstream GNU/Linux distros that haven't adopted and have no plans of migrating to systemd? Or is migrating to one of the bigger BSD systems the better and more future-proof solution?"
Whether you love, hate, or are ambivalent about systemd, I think you have to accept it at this point. If there are things you don't like about it, trying to use an alternate init mechanism is only going to cause you personal grief that will likely only increase in severity over time as it gets harder and harder to retrofit software packages to use other init systems as systemd further embeds itself into the Linux software world.
If there are things you don't understand about systemd, you should read as much as you can to try to figure it out for yourself, and if you can't, you should write up coherent questions and post them in the appropriate forum for help (what is the appropriate forum? I don't know - someone jump in here and help me out. I personally often have no idea where the best place is to ask questions about things like systemd).
If there are things you don't like about systemd, you should write up coherent bug reports or feature requests, and get them in front of the right people (once gain, someone jump in here and say who these people are and how to get these types of requests out there, I actually don't know). Or better yet, make the improvements to systemd yourself if you are capable of doing so.
Your goal should be to improve both systemd itself and your knowledge of how to use it to the point where it is something you are happy to use, not work around it. By hook and by crook, systemd has become the standard way of doing many things in a typical Linux system and it's time for all of us to just accept that and to make forward progress. It's too late to try to work against systemd; it's time to "embrace and extend".
If systemd is so onerous to you that you can't use Linux anymore, then I guess BSD is a possible solution for you. But who knows, maybe BSD will eventually adopt systemd as well?
PolicyKit specifically can be compiled to use consolekit instead of systemd for session tracking (this is actually the default, you have to explicitly compile policykit with systemd support).
Unfortunately this is kind of the downside to binary based package management. Either PolicyKit has to be modified to support both as configurable options, probably involving a maze of symlinks and wrapper scripts, or separate policykit-systemd and policykit-consolekit packages have to be provided.
If Debian has decided to to go with systemd, this is probably going to be a common issue on that distro, as when given the option of compiling something with it, they probably will.
Aside from joining us over on the gentoo side (open-rc is life but using something else is easier as it's just a use flag for most packages), or maintaining your own sizable collection of custom-built packages, don't know what to tell you!
I reckon slackware is going to be the last man standing on this one.
"horde of the systemDead" - really? That's not biased at all. Oh, also: linking to an April fools article. Sweet.
How does systems affect me during the minute it takes my computer to boot while I'm making coffee?
I was always an OpenBSD fan from the olden days but used Debian a lot due to it's easy of package install / dependency resolution. But now after the work they've been doing on LibreSSL is really making me want to switch back to OpenBSD and give it another try. If you want a minimalist's attitude, then choose OpenBSD, like me! (Just need pkg mgmt tools for it somehow...)
SysV is likely to always be supported regardless of what you think of improved init systems. Personally I think systemD is a good thing and combined with wayland is going to close some serious gaps Linux has had for ages.
Honestly if sticking with SysV is so important you can either stop upgrading or you can move to a niche Linux distribution or even move to one of the BSD's.
And now I use NetBSD.
systemd also has its own NetworkManager wanna be in the making as well. I also dislike this.
For shameless plug I currently maintain dhcpcd which does your DHCP, IPv4LL, IPv6RS and DHCPv6. Other nicities like carrier detection, SSID and ARP profiles, routing preferences all come as standard. All in 155k. For kicks there is even a basic GTK+ system tray notification widget that also talks to wpa supplicant to allow wireless network selection and password entry.
with Gnome and other bits for my liking. This is like PulseAudio. It's not that good and it seems everyone is adopting it. The issue with FOSS is the desire for change that is too quick rather than fixing what works. LILO, for example. While GRUB is great, LILO worked fine for me and in fact, it still used by many distros. FOSS has become bloated like its commercial counterpart.
Recently I installed the still-in-alpha Haiku OS because I miss BeOS (still). The entire OS installed in less than 2 minutes. Talk about *fast*. It it were not for the lack of decent software, I would make the move today. Haikuware does have some great software, though. BeOS was awesome and kept it simple. Written from the ground up to remove the mistakes traditional UNIX and Linux were/are still making.
There are significant numbers of people who understand it just perfectly and have valid criticisms that are not bugs.
http://ewontfix.com/14/
The systemd team has pissed of Torvalds:
https://lwn.net/Articles/59368...
Additionally, they repeatedly deny that anyone should have a text log for any reason, dismissing criticisms as 'just hook in syslog *too* as an *optional* thing'. Basically systemd discards decades of sensibilities ecosystem to 'do it better', while throwing out the baby with the bathwater (ditching modularity and portable log data and such).
It's not just that 'if you don't like it, fix it'. People don't like the very fundamental aspects of the design that the systemd did *on purpose*.
XML is like violence. If it doesn't solve the problem, use more.
RMS must be grinning, Linux has finally implementes Emacs as its startup system.
Your immediate recourse is, indeed, to try and sample the *BSD offerings. Their rc.conf approach I find a lot simpler to deal with than sysv's kludgy linkfarming ever was. It works very well without imposing all sorts of requirements on the rest of the system.
But the problem is political, and so the solution isn't technical. On the political side, I'm highly annoyed by the approach that resulted in this damage, but it's actually endemic in the linux world: Identify problem, then go berserk on the over-re-design-engineering like you're deliberately aiming for a strong case of second-system effect. One (and my pet-) example is the "better replacements" to their broken ifconfig, incompatible with everyone else (and three mutually incompatible attempts down the road there's no end in sight), but there are many more. The latest batch just have taken the previous failures to new heights of technically working incompetence.
What is new-ish is that the damage is spreading, in the sense that by design systemd is linux-only yet now various programs that previously worked on Unix in general are starting to depend on it. Apparently a certain bunch of influential people in the linux-sphere want to become their own vendor-lock-in-enabled bubble, to be the next redmond. This is... not good.
There really is very little recourse other than starting your own lobby war to stop the bunch. Because the problem is mostly politican, the technical side is but a symptom, almost a sideshow.
Without political pressure, soon linux will be akin to macosx, except with poorer code quality and less unified design: Technically some Unix-heritage, in practice it's its own thing, incompatible with the world. So if you'd like a Unix, your route is to *BSD. If not, you can stay and put up with the slowly mounting pile of crap of which systemd is but one thing, if possibly a tipping point-inducing thing. The *BSD people will still have to find some sort of answer, and soon, or they'll have to decide that everything depending on systemd+friends will be a lost cause anyhow and find alternative software with similar functionality, for the current crop no longer works outside of this brave new linux.
Slackware is an alternative mainstream Linux distribution which does not use systemd. Instead of systemd, it uses a combination of custom rc scripts and sysvinit. If Slackware ever adopts systemd as the default system init, they would likely lose most of their user base.
If you really must avoid systemd, then Slackware is probably the way to go. Alternatively, FreeBSD/PC-BSD are prettly much safe from ever getting systemd. For now you could stick with Debian Stable or Ubuntu LTS, both of them will run for years on the older init systems. So, really, you are pretty safe from systemd for at least three to five years, even in the Debian/Ubuntu corner of the Linux ecosystem.
But, really, you might ask yourself why go to all the trouble? Is it a philosophy issue? Is it just hating change? Is there something technical causing problems with your computer that is caused by systemd? A lot of people claim to hate it, but rarely give any practical reasons. Sure, there are plenty of philosophical issues with systemd (and lots of personal issues where its developers are concerned), but take a good long look at why you don't like systemd before you try to avoid it.
I'm not sure what the issue is here.
If you're looking to avoid using systemd, move to a distro that doesn't use systemd. (I think Mint still uses upstart and Gentoo uses openrc.) Otherwise, do the legwork to support the init system you want to use.
Im currently running Gentoo. it offers systemd as a package and ive even run it a few times with success. What it offers, along with uefi, is a chance to drastically speed up the boot process but at a cost to the Linux ethos of 'do one thing and do it well.' Im just as conflicted, and seeing as i work in a RedHat shop i fear ill have to start using it eventually. TFA from sporkbox in the summary highlights the major pain points of systemd quite nicely but the other problem it poses is the homogenization of linux and what that means to numerous Linux community members personally. Linux used to be about choice, but so many distros are systemd/gnome/networkmangler now that its almost horrifying. I get that a unified platform is the key to a 'year of the linux desktop' but the sense of alienation and loss that systemd imparts is very palpable for many of us.
Back on topic though, Gentoos commitment to choice means you can run OpenRC. Its a fine time-tested alternative to SystemDoEverything and while your coworkers might be confused by it, at least you wont have to hack through binlogs for ages to fix a problem in it. You're best not trying to hack out systemd or any of its dependencies in distros like Fedora or Ubuntu as theyre basically so intrinsic to the OS as to render it useless if removed.
Sorry i cant offer more closure for the issue, I hope someone in the thread can though. For me i worry in another ten years ill be deploying machines that are exclusively systemd, quietly muttering the free software lyric, 'You'll be free, hackers, you'll be free.'
Good people go to bed earlier.
systemd is just an inferior version of launchd.
See Daemon Managing Daemon. It was written in the early-00s for the Hurd, languished for the better part of a decade, and has been picked up again. It has a model kind of like systemd, only without the Windows braindamage (I mean come on, ini files as a programming language?). Development on DMD is pretty active now, and it's written in Scheme instead of C so mere mortals can hack on it. The design is pretty interesting, and makes extending things easy. E.g. imagine you run an openafs cell and need a service to grab Kerberos tickets and afs tokens at start. You can just register interest in the service in another service and have it Just Work (tm). From the looks of it, you may even be able to just write a single "Kerberize all the services" service. Better than sysvinit (oh joy, forking an init script) and better than systemd (oh joy, forking an ini-file-pretending-its-not-a-program)..
HAL 7000, fewer features than the HAL 9000, but just as homicidal!
Write your own. The source code is out there - fix what you don't like.
there is always BSD for servers and gentoo for desktops
depinit. written by richard lightman because he too did not trust the overcomplexity of sysv initscripts and wanted parallelism, it was adopted by linux from scratch and seriously considered for adoption in gentoo at the time. richard is extremely reclusive and his web site is now offline: you can get a copy of depinit however using archive.org.
using depinit in 2006 i had a boot to X11 on a 1ghz pentium in 17 seconds, and a shutdown time of under three. depinit has two types of services: one is the "legacy" service (supporting old style /etc/init.d/backgrounddaemon) and the other relied on stdin and stdout redirection. in depinit you can not only chain services together for their dependencies but also chain their *stdin and stout* _and_ stderr together.
that has some very interesting implications. for example: rather than have some stupid system which monitors /var/log/apache2/logfile for security alerts or /var/log/auth.log for sshd attacks, what you do is run sshd or apache2 as a *foreground* service outputting log messages to stderr, chained to a "security analysis" service which then chains to a log file service.
the "security analysis" service could then *immediately* check the output looking for unauthorised logins and *immediately* ban repeat offenders by blocking their IP address, rather than having to either poll the files (with associated delays and/or CPU untilisation) or have some insane complex monitoring of inodes which _still_ has associated delays.
also depinit catches *all* signals - not just a few - and allows services to be activated based on those signals. richard also had a break-in on one system, and they deployed the usual fork-and-continue trick, so he wrote some code which allowed the service-stopping code to up the agressiveness on hunting down and killing child processes. this also turned out to be very useful in cases where services went a bit awry.
basically the list of innovations that richard added to depinit is very very long, in what is actually an extremely small amount of code. i simply haven't the space to list them all, and no, richard was not a fan of network-manager either.
btw you might also want to look at the replacement for /bin/login that richard wrote. it was f****g awesome. basically what he did was use gpg key passphrases as the login credentials.... and ran gpg-agent automatically as part of the *login*. i have never even seen a PAM module which does this trick. it would be awesome to do the same trick for ssh as well.
it's fascinating what someone can get up to when they have the programming skill and the logical reasoning abilities to analyse existing systems that everyone else takes for granted, work out that those sytems are actually not up to scratch and can write their *own* replacements. it's just such a pity that nobody seems to have noticed what he achieved.
I am currently playing around with Alpine linux, musl libc + busybox + openrc. I like it a lot - a binary package management similar to Arch linux.
First, I have to ask, what is wrong with systemd? It actually works quite well.
That said, even with systemd (and upstart), sysV scripts are supported for backwards compatibility because quite a few system services do not yet have a systemd startup script. I have not looked at the networkmanager or policykit packages, but I am almost certain the dependency is only because of the startup script. If you grab a sysV script, you won't need systemd to install them. This will likely require some voodoo with the package manager, though. My recommendations in order of ease,
1) use --force to ignore the dependency (this might great problems if you ever have to repair the dpkg database, though)
2) grab another package from some other distro and install (with alien if need be)
3) tweak the package yourself to remove the dependency (wouldn't be hard to maintain wrt updates, etc)
4) compile from source and install (create your own package for maintainability)
I've pinned systemd in apt to -1 (so it won't ever install on my machines). So far i didn't have any problem. Debian will continue to support sysv for years and years, and in that timeframe this silly systemd fad will have passed away, and people eventually regain their minds and (hopefully) balls.
This "inevitability" horse shit is that: horse shit. Linux is equally useful without systemd, provided you have a mininum of experience.
I've also been considered insane from time to time.
What I want:
1.) rpm/zypper/yum based package management. This allows rpm dependency resolution and installed package verification by the package manager.
2.) SysV init. It's clean and it "just" works.
I think those two are a good start. Being able to use an established automated build system is probably a good idea too.
Any other thoughts?
It feels like every few years, distros switch to a new way of doing things.
Why not just improve on whatever the current way is, and evolve it into the perfect init, rather than switch to an entirely new system so often? It annoys current sysadmins who have to learn new software for no good reason, it introduces bugs that make systems less stable, and it further breaks/fragments compatibility between distros.
Don't hold your breath that BSD will adopt systemd. Maybe FreeBSD, but they are basically Linux flavoured BSD anyway. But the _serious_ 4.4BSD based systems just don't see the need, and are happy with the few lines of code that makes up a safe init.
None of the BSDs, not even FreeBSD, will use systemd.
FreeBSD has incorporated NetBSD's rc.d system, and they'll be going with that for the forseeable future:
https://www.freebsd.org/doc/en/articles/rc-scripting/index.html
Ask Slashdot: Practical Alternatives To Systemd?
Install Windows or OS X or some other OS that isn't still working on the basic plumbing. I read articles like this and think, nope still not time for me to return to Linux. Please get it sorted out before Windows 7 is EOL'd though, I might need you again....
Live today, because you never know what tomorrow brings
If you have an EFI system, use gummiboot. That simply uses the EFI drivers for accessing all stuff, and is thus really small.
(not demand start, but that's very UNIX anyway: in UNIX(tm), things start when they're configured to during boot
For workstations, especially portable ones, shorter boot time is a marketing bullet point that differentiates one system producer from another. So as little should "start [...] during boot" as needed.
or when a USER f***ing starts them.)
But then you have to provide some way for the system to decide which USER is allowed to "f***ing start" each service. Or do you really want to have to wait for a member of the wheel group to show up to enter the command and password to "f***ing start" your machine's network driver? How is that better than letting the network driver demand-start when a program that uses the network is started? Linus Torvalds wrote in this post: "And today Daniela calls me from school, because she can't add the school printer without the admin password. Whoever moron thought that it's "good security" to require the root password for everyday things like this is mentally diseased."
stuff like journalctl is just PITA, but there will be convenient wrappers. The best solution at the moment: install rsyslog and it will log stuff from the systemd journal to normal logfiles.
But that wording of the joke's been obsolete since the introduction of the "viper-mode" editor package for Emacs.
Disable all services possible so systemd doesn't try to do anything with them. In my case, that means basically everything, including the graphical desktop. In rc.local, add in your own service start calls in the approved order from an old Fedora or CentOS version. Generally, even if you use the service blah start command which does the same calls to systemd core functions that the whole systemd launch should be doing on its own, rather than coding the commands directly, I've found that systemd functions start much better from rc.local than whatever zombified magic it tries to do based on its own dependency tree.
Maybe it doesn't matter so much if you're able to use network manager, or are not starting any outside facing services. If you have a complicated network and are still using the network service because NM hasn't been completed yet, then it is really easy to get into loops as it tries to start things that depend on network when it isn't really there yet.
Yes, these are dependency bugs that should be fixed. If I had time, I'd file some bug reports. But most of my bug reports languish till the Fedora release expires and they can expunge them with won't fix, and pessimist that I am, I assume this will be particularly true with the mess that is systemd. Really, they should just be able to enable all available services on their own and see if the system boots. It shouldn't take any of our time writing bug reports at all. Sure they might have to repeat the tests with each different mail server, web server, and the like, but the fix should be about the same for each.
Just doing the ordering basically myself using old standard Linux order for the services that I need to run gets my boots to be reliable and drops the boot times down by minutes (as most things expire after 5 minutes if there is no network otherwise).
http://rocklinux.net/
You cannot really make a system that consists of a bunch of shell scripts and have it work for a modern laptop where devices and network connections come and go, and you really want different things to run depending on whether you are at home or on the unencrypted airport wifi.
SysV init needed replacing. It is just unfortunate that the replacement is systemd.
Anyway, I should really stop complaining about systemd, I gave up Linux on the laptop last year and now I am on OS X.
Finally! A year of moderation! Ready for 2019?
A couple of years back I adopted http://troglobit.com/finit.htm... for our embedded software at Work. I've since expanded upon it quite a bit and slowly made it a viable alternative. It's very small, boots quickly without sacrificing dependencys, but currently not really something that can compete with the functionality that systemd aspires to or upstart tried to be, but with the Debian vote I'm seriously starting to consider expanding upon it and adding all the missing features to be able to use it on my desktops and servers as well. After all, despite PID 0 being black magic, it's really not that difficult.
init scripts work. They have worked. They will continue to work. Why blob them all together in a binary, registry-like format?
Should we now start calling the operating system GNU/systemd/Linux?
Who cares if the Bluetooth support is great if you don't get sound at all. I dock, PA mutes a few random things. I undock, a few random things mute. Activate or deactivate the PA Eq plugin, why not mute a few random things, it is fun! Key word is random. When sound starts I expect it to be silent until I launch the PA Volume Control and frob knobs yet again. That ain't winning. Pulse Audio has shipped as the default on Fedora since what version now? Way before 10 and I'm now on 20; still broken. NetworkManager never got a chance to work, it is going out broken it's entire life; replaced with systemd-network which will be broken for years.
We were told to sit down, shut up and learn to like Gnome3 too. We didn't, we loaded XFCE until Mate was out. If we want to keep running UNIX we are going to have to fork the last working Linux/GNU/X releases and maintain that as well.
We do not want Windows services and Event log.
And let it be like upstart, it's there but just keep feeding it sysv scripts ;)
Less-Systemd GNU/Linux - http://www.lsdlinux.org/
I've moved most of my systems to FreeBSD. And no-so-coincidental to this post, today I set up my first Debian GNU/kFreeBSD jail system. Works perfectly. Install debootstrap from ports, create ZFS volume, debootstrap onto the volume, configure and start jail. Done. (Works fine on the bare metal, too.)
(Sad to say this since I've been a Debian developer for over a decade, but I doubt I'll be using jessie in any serious capacity except perhaps for kFreeBSD if they don't manage to screw it over as well. I despair at what's happened to the major Linux distributions over the last few years. No longer feels like home, and the years of pushy passive-aggressive behaviour and acrimony which led to it being adopted completely killed my last bit of enthusiasm. I spend all my free time working on Debian.... for this? Giving the BSDs a try for the first time in a long long time, was like a breath of fresh air.)
Uh.
What?
I remember I used to have these horrible connectivity problems with it, which turned out to be a result of a "feature" wherein it couldn't be used with a wifi network with a non-broadcast SSID, because it would scan for broadcast SSIDs, not see the one it was trying to be connected to, and turn the connection off. I spent a month or so trying to get it to use a WPA2 VPN and eventually gave up and went to wicd.
I have never previously heard anyone describe NetworkMangler in any positive terms whatsoever, let alone suggest that it was in some way "friendly".
My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
You could always just roll your own OS. Linux from scratch allows you to build Linux just the way you want.
> How long until all of the software packages that BSD wants to use require so much work to retrofit to use a different init mechanism that they just throw in the towl and accept defeat?
Keep in mind that *BSD is not alone. There are other GNU/Linux distributions that avoid it. Gentoo are among the distributions working on things like eudev (so you can keep on using udev without systemd).
9/11: Never forget it was a false-flag operation
And this is why we love Gentoo. Also, it does not use systemd. :)
9/11: Never forget it was a false-flag operation
Are you serious?
Nobody said you *have* to accept systemd. I said you *should* accept systemd
Did you not see this first sentence in your first post?
Whether you love, hate, or are ambivalent about systemd, I think you have to accept it at this point.
I believe you actually *did* say that you have to accept it...Or at least you thought they had to...
Don't mind me. I didn't say any of this.
I really didn't like giving it up for NetworkManager.
It feels like every few years, distros switch to a new way of doing things.
Why not just improve on whatever the current way is, and evolve it into the perfect init, rather than switch to an entirely new system so often? It annoys current sysadmins who have to learn new software for no good reason, it introduces bugs that make systems less stable, and it further breaks/fragments compatibility between distros.
Because things have changed since the early 1980s. Example lets say you have at work on a network. You close the lid and travel overseas and open it again on the hotels network when it wakes up. How do you write an inet to deal with dynamic changes like this?
Also in the early 80's you only had 25 text based utilities and apps on a unix server. It was not complicated to do things. A modern linux distro has how many apps, daemons, dependencies, etc. Now image the above scenario with a laptop waking up on a different network thinking of all the complexities of a modern distro?
An event driven system makes sense. You can program your system to make changes based on conditions and scenarios that pop up. Network trunk gets hit high? No problem I can setup the event driven systemd to page me and run some packet shaping. Hacking attempt? No problem send an alert and sandbox processes etc.
Sun and Apple have all moved away from inet to event based systems as well.
http://saveie6.com/
Some people care about boot times. I'm guessing you're old enough that 2 minutes used to be totally acceptable, and you aren't irritated at what everyone else perceives as long boot times.
You cannot really make a system that consists of a bunch of shell scripts and have it work for a modern laptop where devices and network connections come and go, and you really want different things to run depending on whether you are at home or on the unencrypted airport wifi.
SysV init needed replacing. It is just unfortunate that the replacement is systemd.
Anyway, I should really stop complaining about systemd, I gave up Linux on the laptop last year and now I am on OS X.
Sure you can. That's what daemons are for, to segregate out smaller functions into smaller single-function processes that are easier to maintain, troubleshoot, replace, etc, rather than one big monolithic "does everything" program. Are you saying that you couldn't have a daemon monitoring the USB bus or SATA bus (getting a signal?) and adding new devices when they appear? Sounds simple enough - maybe needs some USB/SATA bus driver tweaks to make it easier, but I'm not sure why that requires a huge monolithic initd replacement vs. letting a daemon process do it.
And both systemd and launchd are inferior versions of SMF from Solaris.
You say SMF, I say AIX System Resource Controller - Binary log files, configuration in ODM database, etc.
In spite of the headaches SRC sometimes gave, I'd welcome a knock-off on Linux if it were well written.
I was using NetBSD, which has no plan to import systemd, I will carry on.
For a server operating system, boot times are meaningless.
What solaris does is pretty irrelevant for the world at large.
to my grandchildren seeing its release
Now wait, didn't Linus himself refuse to let systemd become a kernel dependency? I think the poster has a point. I've used systemd on Arch linux and there's a lot not to like about it and not that much to like about it. I'm a linux newbie as well, so I don't have any particular previous init experience. And doesn't kernel modesetting sort of obviate the need for a complex init?
Bullshit. Sometimes you need to restart servers, and occasionally there's an issue during regular use that will require a restart to clear out. I would argue that servers would have a greater need than most of having rapid boot times to ensure that any unexpected downtime is as short as possible. But I guess I'm the lone voice of reason here.
As the legendary Henry Spencer said, "Those who do not understand Unix are condemned to reinvent it, poorly."
Clearly the folks behind systemd do not understand Unix.
-- Alastair
Systemd cannot determine when a service is ready for dependent service startups. That requires EVERY service to be modified to tell systemd when it is actually ready to accept service requests.
A simple example is NetworkManager. By default, systemd assumes the network is ready for service as soon as it spawns NetworkManager. Unfortunately, that ignore things like the time it takes for NetworkManager to read its configuration file, initialize network devices... And if you have two or more interfaces, how long it takes for EACH ONE to get initialized.
So what happened? systemd attempted to start httpd - which obviously depends on the network. And it fails.
What was the fix? Modify NetworkManager to send a notification to systemd - which then has "NetworkManager-wait-online" as a target. Mostly works... But if one of the networks NetworkManager requires a DHCP response... NetworkManager itself assumes that the interface is initialized as soon as it starts dhclient... but dhclient may have to wait quite a while to get the information it needs....
So what happens? Another timing failure. How to fix? YET ANOTHER MODIFICATION to a standard service...
So back to apache... If the apache server depends on a database service... how does systemd know if the database service is ready? right - YET ANOTHER MODIFICATION to a standard service, now the database server...
And if something depends on apache?
So what happens if you choose NOT to use systemd.... well, nothing works. All the services depend on systemd now.
Originally, it was planned that Fedora 14 would allow either upstart or systemd... only that failed. Then the plan was for Fedora 15 allow either upstart or systemd. Fedora 15 was released with systemd, and supposedly the option to use upstart... Those of us that tested using upstart were greeted with a nonfunctioning system. And it was impossible to get working.
The next major failure is that systemd depends on dbus and udev. If either of these abort you end up with a nonfunctioning system. On top of that is journald... it too depends on systemd and dbus. If journald dies, errors from systemd/dbus also die... or choke the system into a hang.
And then there are the shutdown hangs. Can't debug them at all.
And STILL people put "sleep" commands into rc.local - as well as filesystem mounts (especially network based filesystems), starts of databases (after all they need the network too), restarts of apache...
All trying to work around a piece of crap that cannot work properly.
I'll grant, a static network is fairly easy to debug (if it is really small). But a complex network can take forever (it is still an NP problem after all). And anytime an error shows up, it usually causes a hang on boot, hang on shutdown, or a non functioning service.
"You cannot really make a system that consists of a bunch of shell scripts and have it work for a modern laptop where devices and network connections come and go, and you really want different things to run depending on whether you are at home or on the unencrypted airport wifi."
Sure you can. Try slackware ffs.
"SysV init needed replacing. It is just unfortunate that the replacement is systemd."
SysV init was a step in the wrong direction, systemd is a giant leap further down that road. But there are plenty of other good init systems. Slackware and Gentoo work just fine without either of them, and so do the BSDs.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
Bullshit yourself. The ONLY reason a properly configured production linux box being competently administered is going to reboot is a critical kernel patch or hardware failure. Period, end of story.
Of course, if you have installed a bunch of crap designed with the same philosophy as we see in systemd and let it all run however it want, then yeah, you're misconfigured. Doh.
Quit blaming perfectly good tools for your own incompetence.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
Keep in mind that *BSD is not alone. There are other GNU/Linux distributions that avoid it. Gentoo are among the distributions working on things like eudev (so you can keep on using udev without systemd).
But besides Gentoo, are there any other major GNU/Linux distros not planning to adopt systemd? From what I've read, Slackware is just holding out until the last minute. Among the BSDs, FreeBSD has the greatest number of packages. The only thing I don't like is the fiendish mascot.
Partially guilty. I certainly believe that a 2 minute boot time is acceptable *to me*, but I'm not irritated by people who want fast boot. I'm irritated that their zeal for fast boot resulted in an extremely poorly engineered piece of software that breaks the ability of some of my machines to boot *at all*.
Go Badgers! -- #include "std/disclaimer.h"
What server do you have that makes it through the BIOS so fast that the difference between systemd and SysV is meaningful?
And if your server is so critical that the ~2 minute difference (on a good day) in boot times is a serious business issue, you should really consider running redundant servers anyway since there are a variety of other failures that a fast boot time isn't going to help....
Go Badgers! -- #include "std/disclaimer.h"
I have noticed something about linux in general. You know how when you first started using linux, and all the old guys insisted that you call it GNU/Linux, and you thought "yeah, I don't f*ing care?" Well it turns out that they had a point, although it was somewhat obscure. Linux, more than any other unix (well, many of them), leans VERY heavily on it's userland. Try to build Linux without gcc. It's not possible, even though in most areas LLVM/clang is ahead of gcc, gcc is ingrown, and linux depends on nonstandard gcc extensions. There's other examples. Some graphical programs expect an xterm, even though xterm is horribly broken and screwed, because xterm is the standard, so they don't support REAL standards, they support xterm. I think kernel mode setting, though it should actually be a good thing for linux graphics is a fairly major change in X11 which again distances the BSDs. systemd is just the latest and the worst of a long line of insults that linux has been hurling at unix (the idea, not any particular OS).
Now that my whiny little rant is done, I will go ahead and mention the following distros as high quality/minimalist:
slackware
crux
For good ideas on what makes good/bad software check out suckless.org and harmful.cat-v.com (I am in no way affiliated with them, and admit that in many cases they overstate the case. But when you're the minority, you'll ally with anyone.).
In my totally elitist opinion, the problem with software these days is complexity. Anything that you can do to boil software down into a simpler, more logical system is an improvement, if you're not a passive user checking your email and playing flash games.
I am well aware that my opinions are totally unpopular and that most people would rather use systemd as "good enough," or even "better." I don't care if you use systemd, but please do not force your crap on the rest of us. That is not what open source is about. I can and will find a way to circumvent your trash.
EUDEV!
Billy, three suggestions:
Quit calling it "inet" when you mean "init".
None of what you mention has anything to do with inet or init and so my laptops have done very well in your scenarios using the traditional sysvinit and now with upstart.
If you want to sell systemd, figure out what it does that was not done before, not just what was not done before by init.
Good point, but the BSD world is becoming far more attractive with the last big distros bending over for systemd. My vote is PC-BSD for its ease of use and practicality. Anything you can do with Debian can probably be achieved on PC-BSD. If Debian had ZFS you'd have a much tougher decision to make.
Where have you read that Slackware is going with systemd? If they do, I may switch to Gentoo. My previous experience with Gentoo was less than positive, but, then, I was using SPARC...
vi ~/.emacs # I'm probably going to Hell for this.
In Debian testing, dbus depends on systemd libraries. From here, anything any close to dbus _do_ install systemd libraries: cups or kde-runtime are good examples. I do not want to use systemd because I just think they're ****holes (as valid as any other reason, I guess), but I am alreay using libsystemd-logind, libsystemd-journal, libsystemd-daemon0... and I cannot get rid of them without loosing all my environment (and no matter what DE you use, as long as it requires dbus... it requires systemd). I could replace networkmanager with connman as someone else here did, but I cannot replace cups or the productivity on a graphic environment vs a console-based environment.
I completely ignore if this is just a Debian thing, in which case I will leave this distribution after almost 15 years, or on the contrary is a general thing. I simply want one program to do one thing, because if it crashes, only one thing crashes (whereas if systemd crashes you're fucked). I am all "eyes" to read about any 100% systemd free. It is incredibly frustrating.
This discussion sounds awfully familiar. Like the one about the micro kernel in 1992 between Torvalds and Tanenbaum. This is exactly the same but then in user space. Btw still nobody knows if Torvalds was right. Linux grew because it was open source and minix wasn't. And because linux had more features. So we will probably never know about systemd either, unless somebody starts a successful counter development.
After being left unimpressed with how systemd has been forced upon us by all the major distros, I've now migrated to FreeBSD and loving it. I don't know why I didn't switch years ago! :-)
The choice of installing stuff via binary packages with "pkg" or building via the extensive "ports" collection is refreshing!
Swiss army knife system utilities need not apply.
That is exactly what systemd is: a swiss army knife. It's a monolithic solution to 10 different "problems", where all of the "problems" are debatable in the first place. That is the windows way, not the unix way. I pray that at least some linux distributions will take a stand and at least offer choice. If not, then maybe it's time I finally give up on linux and move to BSD. I don't want a black-box startup system any more than I want a black-box configuration system (the windows registry). If you want a windows-like system, then why not just use windows?
Still living in a world where you have "a" server doing some server'y thing until it fails in which case you go and fix "it", eh?
I think the problem with Pulseaudio is that it is too monolithic. There is just too much logic stuffed into one place for a good long term open source project. Once the original people lost interest it became too hard to understand for those that just wanted to fix bugs. At this point someone is going to have to devote a significant hunk of their life if the hard bugs are ever to be fixed. Pulseaudio should of stuck to what it did best: network audio...
The same Slackware that still refuse to support PAM?
I'm sure Slackware will switch to systemd - 20 years after switching to PAM.
Personally I'll be more worried about the two minute connection timeout in TCP, when trying to reach slashdot during my vacation on Neptune.
^this guy gets it.
and i can concur. there was a thing i, and metric crapton or other people, didnt like about systemd on my distro. (longstoryshort, dhcpd service borkbork) so i fixed it and told the devs my reasoning. and it was patched by the next weekly build. which was cool and stuff.
the simple trick, was being a rational person not stomping in the forum like a primadonna bequeathing salvation in return for them calling me mr smarty mcsmart phd in smartology. someone else would of nailed it sooner or later. and its a nice distro.
Every new thing will have a group of people who insist that it is the devil. Maybe it is, and good for them for saying something. Too bad no one is listening to them.
But then again, maybe some people just hate change...
Systemd was built for a reason, maybe a bad one, but a line of thinking went into it. Booting is not a simple thing, despite what you would like to think, and it could be made better.
One thing is for sure though, OSS is not going to stand still, and IMHO, that is a damn good thing...
*Condense fact from the vapor of nuance*
It has been tested and retested and liked. If the experts (Linux support and Developers) have no objections, I would go with the flow.
I guess it is like going from a standard shift vehicle, to an automatic transmission vehicle. More convenience but less control. And with sealed motors, no need for feeler guages either.
Leslie Satenstein Montreal Quebec Canada
YO, its cool and all but the package manager needs a dose on internet connectivity. Its light enough like slackware and all, a bit too light for me. :P
Assuming this and such awkward command syntax, and that one can get around in vi, you'll fit in just fine. Ive used vi, and Id rather use nano.
But I think he's living at his mother Jan Kowalski's basement at:
At least, that's where he wants users of his hostfile manager to send him money.
Those dependencies are Debian based.
Systemd does NOT depend on NetworkManager. Archlinux has maintained use of systemd for quite awhile now and do not depend on Networkmanager. They depend on initially, a very basic service to start dhcpdcd. Thats it at most. Anything else is optional.
Systemd is not that bad. It's the distributions that make it so "bundled" not the init system.
I suggest a distribution that respects your freedom more like Arch or Gentoo.
See these links:
https://web.archive.org/web/20080703103758/http://www.nezumi.plus.com/depinit/
https://web.archive.org/web/20080703184315/http://www.nezumi.plus.com/depinit/man8/depctl.8.html
My system boots to the login screen in about 5 seconds with OpenRC since I'm using an SSD for file system caching. I don't need systemd for that.
"From what I've read, Slackware is just holding out until the last minute. "
Pure FUD. Slackware does not ship PAM, it does not ship GNOME, it uses EUDEV, if anything it's even less likely than Gentoo to adopt systemd since it's already an option for the tuners that sit there with a stop watch rebooting and compiling all day.
But Slack Gentoo and OpenBSD, at the least, are going to continue doing what they have done so far. Implementing specific features that turn out to be useful enough to start being adopted by useful programs, but individually and without unnecessary breakage to the *nix design.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
I am using Gentoo with KDE and OpenRC and I don't feel any disadvantages. As far as I know Gentoo is not planning to switch to systemd as a default choice. Btw systemd and gnome are available but they are optional.
It would be very easy to modify PolicyKit to automatically choose between systemd and ConsoleKit at runtime (of course I read the source to draw that conclusion). The reason PolicyKit needs systemd or ConsoleKit, by the way, is simply to find out if a (logged in) user is local and active (the default policy is to only let local active users mount an USB-drive for example). If someone invents another way to find out if a user is local and active, support for that could be added to PolicyKit as well.
I'll admit I have not looked at the code, but the problem I would anticipate is needing both as a dependency at compile time, unless it can be dynamically loaded or is all done via external calls.
ConsoleKit is no compile time dependency (it's interface is DBus and a bunch of files in /var). The systemd library in question (libsystemd-login) would be required even at runtime (but not require systemd to actually run), at least with the current implementation. (Perhaps the library is just a wrapper around a DBus interface, I haven't looked into that.) Another, slightly more complicated, way of doing it would be to have loadable modules for PolicyKit. I would love to see the javascript-part go into a kind add on loadable module since it's adds a lot of overhead and isn't even needed at all in the common case (it's only for "System Administrators [and] Special-purpose Operating Systems / Environments and those audiences only" according to the documentation). But I wouldn't be surprised if PolicyKit gets moved into systemd instead (the way it's written it would be an easy thing do do).
How is this different than upstart that I see on Centos installs?
Upstart seems to be easy and works well.