Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
Debian Open Source Operating Systems Software Linux

Ask Slashdot: Practical Alternatives To Systemd? 533

Posted by timothy
from the going-forward dept.
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?"
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Practical Alternatives To Systemd?

Comments Filter:
  • by Bryan Ischo (893) * on Thursday May 08, 2014 @01:36PM (#46951871) Homepage

    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?

    • Re: (Score:3, Informative)

      by Anonymous Coward

      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.

      • Also, Lennart Poettering has noted he doesn't care about support anything !Linux, even if someone else maintains the code.

    • by armanox (826486) <asherewindknight@yahoo.com> on Thursday May 08, 2014 @01:54PM (#46952113) Homepage Journal

      Wow....someone asks what they can do about having a software package shoved down there throat and your response is just open wide and swallow? I thought this was supposed to be about freedom. Wait, GNU/Linux is about freedom, as long as it's what they want you to do....

      On a more serious note, any software that wants UNIX compatibility will keep supporting SystemV/BSD init. I get the distinct feeling that Oracle and especially the BSD guys don't want anything to do with systemD.

      • by Anonymous Coward on Thursday May 08, 2014 @02:19PM (#46952397)

        Solaris has it's own abomination called SMF. Good luck debugging network problems on Solaris without a GUI unless you're experienced with SMF. I use Solaris only to maintain my open source projects (I value portable code), and I _hate_ dealing with the system. So convoluted.

        The system with the most straightforward configuration and init system, IMO, is OpenBSD. It's soooooooo nice. The only major change in nearly 15 years has been the move to an rc.d/ (init.d-style) startup script directory. Contrast that with number of convoluted changes in Linux administration over those past 15 years, and it seems like a miracle.

        If SMF and launchd (OS X) are any indicator, I'm definitely going to hate working with systemd.

        (NOTE: I haven't used Slackware since the 1990s, so maybe it's remained stable all these years, too. For Linux I tend to only use Debian and Ubuntu.)

        • by Rutulian (171771) on Thursday May 08, 2014 @02:53PM (#46952825)

          Never used SMF, but systemd is quite a bit better than launchd. The configuration files are all plain text. The major difference from a configuration point of view is that instead of writing a script, you just specify executable information, dependencies, sockets, etc, in a config file. That's it. Doesn't seem like such a big deal to me and in many ways seems quite a bit better than sysV.

          • by amorsen (7485) <benny+slashdot@amorsen.dk> on Thursday May 08, 2014 @03:12PM (#46953021)

            The configuration system for daemons that systemd has is an enormous leap forward over the old shell scripts. If systemd would stick to be an init system, it would not be such a problem.

            When it takes over file system mounting, including hiding most mount points from /etc/fstab and breaking silently if there are perfectly valid mounts in there which it happens not to like, people complain.

            When it takes over system logging, previously one of the major advantages of Unix-based systems over Windows, people complain.

            And so on and so forth.

            • by Rutulian (171771) on Thursday May 08, 2014 @04:07PM (#46953663)

              When it takes over file system mounting, including hiding most mount points

              I can see how this is annoying, especially when you don't know what is going on, but mounting filesystems is an integral part of the startup process and therefore should be managed (in part) by systemd. It was manged using the old sysV scripts too btw, so it is consistent as far as init systems go. The difference with systemd is it actually knows what a filesystem is and that it is different from a service, so it can manage and monitor them accordingly. What this means is that filesystems associated with booting (root, swap, dev, ...) are now systemd entries instead of /etc/fstab entries. Once you realize this, it is not that hard to manage. And /etc/fstab does still work, of course, for filesystems you want to manage yourself. There are reasons you might want to create systemd entries for those too, though. Automounting, for example, is handled much better with systemd than the old autofs route that we had to use before.

              and breaking silently if there are perfectly valid mounts in there which it happens not to like

              That is either a bug, or possibly a conflict. Again, I can see how it is annoying, but if you have an /etc/fstab entry that wants to steamroll a systemd entry, it is understandable that systemd will try to stop that from happening. The correct fix in that case would be to edit the systemd entry to match the changes you are trying to make with the /etc/fstab entry.

              When it takes over system logging

              So, systemd doesn't just start/stop services, it also monitors them and can be configured to take certain actions depending on what happens to a particular process. So, needless to say, logging is kind of inherent to the whole thing. Correct me if I'm wrong, but I don't think it "taking over logging" is your real objection, but rather the way in which it does its logging. Instead of splitting things into separate text files that are managed by their respective daemons, systemd collects all this information and stores it in a standardized, indexed way within its own file. This is a design decision, and with all design decisions there are tradeoffs. In this case you are sacrificing the ability to just cat/grep individual text files for the ability to filter and have other processes able to monitor the log files, as well as some benefits for auditing and security. I definitely prefer text files because I don't manage complex scenarios, but I can also see how journald is critical for certain enterprise infrastructure. If you don't like journald, you can install syslog-ng. You just have to make sure it doesn't trample on journald (ie: it has to listen on the journald socket instead of /dev/log). I believe CentOS 6 is configured this way (journald+syslog-ng), so it is not that unusual or hard to do.

              • by sjames (1099) on Thursday May 08, 2014 @04:34PM (#46953907) Homepage

                Again, I can see how it is annoying, but if you have an /etc/fstab entry that wants to steamroll a systemd entry, it is understandable that systemd will try to stop that from happening.

                Or it could just honor fstab since that has always been the correct way to specify mounting a filesystem.

                So, systemd doesn't just start/stop services, it also monitors them and can be configured to take certain actions depending on what happens to a particular process.

                I see no reason that should need to touch system logging at all other than adding a log entry if it has to take action.

              • by amorsen (7485)

                What this means is that filesystems associated with booting (root, swap, dev, ...) are now systemd entries instead of /etc/fstab entries.

                What would have been lost by adding them to /etc/fstab? That way you would be able to tell systemd not to mount them, if need be, or to mount them elsewhere.

                standardized, indexed way within its own file.

                Said standard being the systemd source code of the day. No external tools can handle the format. journalctl performance is a complete joke, and that is in comparison to full-text grep of the text files -- quite an accomplishment actually.

                "Note that the actual implementation in the systemd codebase is the only ultimately authoritative description of the

      • by HiThere (15173) <{ten.knilhtrae} {ta} {nsxihselrahc}> on Thursday May 08, 2014 @02:37PM (#46952609)

        That Oracle dislikes something isn't a condemnation. It's more nearly a recommendation.

        That said, I'm dubious about systemd. I almost understand how to use init. OTOH, I prefer the interface of the pre-grub2 grub to the current one. I assume that there must be SOME benefits to the change, but I haven't found any. I expect to end up feeling the same way about systemd.

      • by Rutulian (171771) on Thursday May 08, 2014 @02:42PM (#46952665)

        Hate to break it to you, but when you install a distribution, you have a lot of software "shoved down your throat." It is what a distribution is, after all, and has been the case since forever. The maintainers decide what functionality is in the base system, what packages are installed in meta packages, what versions, what optional features to compile in. The only way around it is to use a source distribution like gentoo.

      • by Bryan Ischo (893) * on Thursday May 08, 2014 @03:04PM (#46952941) Homepage

        Specious argument. Nobody said you *have* to accept systemd. I said you *should* accept systemd, and I gave reasons why you should. You still have the freedom to disagree and do your own thing regardless of what I say.

        I would have thought that were so obvious that it didn't even necessitate your reply, but since you've been modded "+5 Interesting" I guess lots of people also completely missed the point.

        • by Bacon Bits (926911) on Thursday May 08, 2014 @04:04PM (#46953641)

          I would have thought that were so obvious that it didn't even necessitate your reply, but since you've been modded "+5 Interesting" I guess lots of people also completely missed the point.

          It's a theme on the Internet. If you don't qualify every minor nuance of your statement, or carve out an exception for every conceivable corner case, someone calls you out on it. Nothing can be left as an excercise for the reader, because too many readers are pedantic or intellectually dishonest.

          Usually it's intentional equivocation masked as an attempt to sound intelligent or continue the argument when they no longer have a real point. Often they boil down to syntactic or semantic arguments, belaboring point after point until those with solid points are swarmed by nits. Unfortunately, that makes it very difficult to tell when someone is being obtuse versus when they are being curious or have a legitimate point.

    • Re: (Score:3, Insightful)

      by Anonymous Coward

      Whether you love, hate, or are ambivalent about systemd, I think you have to accept it at this point.

      Why hello Mr. Chamberlain, I wondered when you'd show up.

      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.

      For such an influential piece of software driven by such high-falutin' names to be so poorly understandable is a bit of a poor show, wouldn't you agree?

      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".

      How... interesting that you're basically declaring systemd to be gospel and everyone's saviour, when it is but the latest take by people who, let's face it, aren't that great with systems design, and aren't all that responsive to critique. Is that why you are advocating no longer offering critique? The

      • Re: (Score:3, Insightful)

        by ultranova (717540)

        Why hello Mr. Chamberlain, I wondered when you'd show up.

        Someone Godwins a discussion about the merits of Linux bootup mechanisms. Someone else mods that Insightful. All that's missing is for someone to compare tmpfs to a death camp... Oops, too late.

        And 4chan gets called the Goatse of the Internet.

    • by epyT-R (613989)

      "Just accept it. It's inevitable. Just give in. Help make it better instead of fighting it." Yuck. Talk about slimy propaganda. Admittedly, I like the idea of the theoretically better process scheduling using kernel control groups, but the rest is really just overrated.

      • Re: (Score:3, Insightful)

        by Bryan Ischo (893) *

        OK fine then, don't accept it. Waste your time and money fighting the inevitable, just so that you can be "right", when you could have spent less time and money cooperating on fixing the thing so that you can be "right" *AND* have more time and money in the end, and a better outcome all the way around.

        Look, I don't love systemd; I quite dislike it in fact. But it should be pretty clear to any moron that it's already become entrenched and it's not going anywhere. So you can cry and try to take your ball a

    • by Arker (91948) on Thursday May 08, 2014 @03:53PM (#46953527) Homepage
      "Whether you love, hate, or are ambivalent about systemd, I think you have to accept it at this point."

      You are wrong, and fundamentally wrongheaded.

      "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."

      And if we accept your advice we ensure that catastrophe. No thanks.

      "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."

      This advice does not fit the situation at all. Bug reports and feature requests? You do not fix a fundamentally mis-specified and mis-designed program with bug patches and requests for even more misfeatures!

      "Your goal should be to improve both systemd itself"

      This makes no sense whatsoever. I dont want to 'improve' it I dont want it period. Init works great. It's not broken, dont fix it.

      "By hook and by crook, systemd has become the standard way"

      Negative. Init is the standard way. What's happened is that the number and visibility of the deviationists has increased. Popularity along is not sufficient to change a standard.

      "If systemd is so onerous to you that you can't use Linux anymore"

      Huh? Cant use linux? WTF are you talking about?

      I am pretty sure that Linus has no plans to integrate this trash into the kernel. And if he did that would just mean it's finally time for a fork.

  • Hmm (Score:5, Insightful)

    by Anrego (830717) * on Thursday May 08, 2014 @01:38PM (#46951889)

    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!

    • Re:Hmm (Score:5, Interesting)

      by Tester (591) <olivier.crete@[ ]ete.ca ['ocr' in gap]> on Thursday May 08, 2014 @01:56PM (#46952133) Homepage

      PolicyKit specifically can be compiled to use consolekit instead of systemd for session tracking.

      Except that, last I heard, Lennart is also the maintainer of ConsoleKit, and he has officially declared it dead in favor of systemd-logind. Seriously, the reason everyone choses systemd is because it's just better. And as a former Gentoo dev with a good knowledge of openrc, systemd is one or two levels above.

      • Re: (Score:3, Insightful)

        by Anonymous Coward

        It being "better" is still open to debate no matter how good your knowledge of openrc is. Extra complexity is extra complexity, and making arbitrary choices just because you feel they are superior doesn't actually make them superior or any less arbitrary. If everyone chose systemd, we wouldn't be regularly having these debates.

      • Re:Hmm (Score:4, Insightful)

        by serviscope_minor (664417) on Thursday May 08, 2014 @02:29PM (#46952517) Journal

        And as a former Gentoo dev with a good knowledge of openrc, systemd is one or two levels above.

        How? I'm ont being snide. I have an arch system that went through the upgrade. I don't see much difference. Basically none at all. What is, in practice, actually better about it for dat-to day use and administration?

      • Re:Hmm (Score:5, Interesting)

        by strikethree (811449) on Thursday May 08, 2014 @02:55PM (#46952839) Journal

        I am extremely suspicious of so many folks with 3 digit IDs coming out strongly in favor of the inevitability of systemd.

        I strongly dislike systemd and Pottering and I am shocked that Linux is evolving in this way. It seems like a concerted and coordinated effort. It seems like someone is driving a poison dagger deep into the heart of Linux.

        I would be interested in hearing why exactly you are in favor of giving up the *nix way? Is "one or two levels above" really worth it when it costs so much more?

        • by dentin (2175)

          For every complex problem, there is a solution that is simple, easy, and wrong. Bootstrap/init is a complex problem, and systemd covers more of that complexity than previous solutions.

          As for the three digit UUID observation, that's because those people where there at the beginning. If they're still active today, of course they would have strong opinions - they have a lot of experience to draw on.

        • by lophophore (4087)

          systemd is best avoided. Avoid! Avoid! Avoid!

          (pulseaudio, avahi, systemd. Why are these things all such a f*cking bear to deal with? Why, oh why?)

          CentOS might work for you, if you don't feel the need to be completely modern. No systemd in Centos 6. I expect to see in in RHEL 7 / CentOS 7, though.

  • I wrote OpenRC (Score:5, Informative)

    by UberLord (631313) on Thursday May 08, 2014 @01:52PM (#46952089) Homepage

    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.

    • Re:I wrote OpenRC (Score:5, Insightful)

      by crow (16139) on Thursday May 08, 2014 @02:41PM (#46952649) Homepage Journal

      Thanks for OpenRC. I *love* how it works on my Gentoo system. The ability to load custom variables for any script with /etc/conf.d files is wonderful.

      I've gone a bit crazy with my /etc/conf.d/net, automatically setting up a ssh tunnel home if it sees that it's on an outside network (and trying several methods to get the tunnel working). If it's on ethernet, it switches the WiFi to being an access point. Lots of fun. I just wish the preup()/postup() functions were part of all the init scripts, not just the net script.

      I also make use of /lib/dhcpcd-hooks to clean things up if the local network is unfriendly. If the provided DNS server mangles entries for non-existent domains, and if it doesn't block Google, it switches over transparently in my local script.

      The paradigm of letting the user modify the behavior through regular shell scripts is extremely powerful. Thanks for keeping it alive.

  • Too much integration (Score:3, Informative)

    by Anonymous Coward on Thursday May 08, 2014 @01:55PM (#46952127)

    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.

    • by Cramer (69040) on Thursday May 08, 2014 @02:20PM (#46952413) Homepage

      To be fair, LILO is very primitive and sensitive. It doesn't read filesystems; it has an installed map (the result of running lilo) that lists the exact blocks to load for a given entry. You cannot load anything that's not in its map. Touch any of those blocks and it can fall apart. GRUB was a vast improvement, but also adds a great deal of complexity. (GRUB2 even more so.)

  • Emacs (Score:4, Funny)

    by Hugonz (20064) <hugonz AT gmail DOT com> on Thursday May 08, 2014 @01:59PM (#46952177) Homepage
    RMS must be grinning, Linux has finally implementes Emacs as its startup system.
  • by Anonymous Coward on Thursday May 08, 2014 @02:00PM (#46952181)

    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 (Score:5, Informative)

    by syzler (748241) <david&syzdek,net> on Thursday May 08, 2014 @02:00PM (#46952183)
    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.
    • by Noryungi (70322)

      Go Slack!

    • by ls671 (1122017)

      "Slackware is an alternative mainstream Linux distribution"
      Funny that one of the oldest distribution (1993) has become an "alternative" one...

      I use Slackware since 1995 and I have viewed it as "alternative" before ;-)

      • by Arker (91948)
        Indeed, Slackware is the standard by which others are to be judged - and usually found wanting.
      • by Darinbob (1142669)

        I'm actually surprised that so many people readily accept Ubuntu as mainstream, I'm still stuck thinking that it's an upstart newcomer until I look at the calendar.

    • by Arker (91948)
      Seconded. Slackware is the best. It's actually a fork from BSD init with a little code added to accommodate stupid applications that expect SysV IIRC. But whatever it is, it works wonderfully, it's simple, robust, and easy to work with. I dont understood why anyone would deliberately use anything else.

  • Slackware (Score:5, Insightful)

    by Anonymous Coward on Thursday May 08, 2014 @02:01PM (#46952189)

    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.

  • by nimbius (983462) on Thursday May 08, 2014 @02:01PM (#46952199) Homepage
    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.'
  • See Daemon Managing Daemon [gnu.org]. 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 [lwn.net]?). Development on DMD is pretty active now [gnu.org], 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)..

  • depinit (Score:5, Informative)

    by lkcl (517947) <lkcl@lkcl.net> on Thursday May 08, 2014 @02:15PM (#46952351) Homepage

    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.

  • by Rutulian (171771) on Thursday May 08, 2014 @02:16PM (#46952361)

    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)

    • by Arker (91948) on Thursday May 08, 2014 @04:29PM (#46953857) Homepage
      "First, I have to ask, what is wrong with systemd?"

      It's a massive, complicated, and very poorly behaved substitute for a simple, robust, and well behaved program. And it's not just a regular program, it is (if used as intended) a critical system component that will take your entire system down when it goes wrong.

      If it were just a bad program, that's no big deal in and of itself, there are plenty, you just avoid them. But these people are not hackers, they have a marketing engine and are aggressively attempting to push themselves into a position where it WILL become impossible to avoid them and still use many new programs. That's beyond offensive. That's an attack on the Free Software ecosystem itself.
    • by fgodfrey (116175) <fgodfrey@bigw.org> on Thursday May 08, 2014 @05:13PM (#46954207) Homepage

      What's wrong with it? Here's my starting list and I'm sure I'll think of more....

      - Binary Logs: Sorry, but there is no advantage to not being able to easily look at a log file.
      - Failure to Log to the Console: There is nothing more frustrating than watching 5 screens of "Failed, use journalctl to blah, blah, blah..." come by when you know that your root filesystem isn't mounted read/write. There went *ALL* your debug information.
      - Failure to Drop to a Shell When It Breaks: If my boot is broken,I want a shell. Not a hang. There's a way to force it to go to a shell, but that's before it does *anything* so you don't get to debug the failure, you get to guess what the failure might be and see if you can debug *that*.
      - No way to see WTF it's doing: There's supposedly a command to make it tell you what order (and presumably what'll happen in parallel) things are going to start in. However, if you use that command as root, it tells you not to run it as root. If you do it as a normal user, it doesn't have permission to read all the files to tell you what it's doing.
      - Races: I no longer have any idea what order things are starting in. I've had a cluster where everything worked fine. Until the a week and a few reboots later and then it occasionally failed. Don't even start to tell me that "I must have my dependencies wrong". I *KNOW* they're wrong. But I have no tools to help me figure out what "right" is. Plus, have you looked at how many unit files systemd starts on a normal system? I can't hold that much of a graph in my head. With SysV init, unless I turned on some weird parallel mode, everything starts in the same order every time.
      - Complexity: I'm not a professional sysadmin. I'm a developer who has to maintain development systems (as well as personal systems) part time. If I worked with systemd every day, I'd probably be able to figure out ways to make it work for me. But I don't. SysV is just shell scripts. I *DO* deal with *those* every day so it's pretty easy to debug.
      - Complexity, Part 2: The previous version of init essentially had no bugs. Ok, I'm sure that's not really true but they sure didn't surface very often. Since the results of your Process #1 dumping core are catastrophic (ie, a kernel panic), ideally that process should do as little as possible. That is *CLEARLY* not the design philosophy of systemd. Further, it consumes a decent amount of RAM and the more RAM you consume, the more likely (statistically) you are of hitting a memory error.
      - YACL (Yet Another Config Language): Ok, so this is really a minor complaint but I get to learn yet another way of writing config files.
      - Filesystems: SysV init tended to mount local filesystems *very* early in boot (some of that broke when udev got involved, but you could usually hack around that) and network filesystems not long after. I'm not entirely sure where systemd mounts filesystems, but it breaks *HORRIBLY* if you move some of the files needed by a service onto a filesystem that's not a "normal" filesystem. I'm sure there's some way to set all the dependencies to make that work, too, but see above, I have no f'ing way of figuring out what should depend on what.

      From all outward appearances, the developers have *no* interest in fixing much of any of those complaints. The whole "debug on the kernel command line" fiasco is a pretty clear indication that they "don't play well with others". In the end, I'll see what Slackware has or maybe move (back) to the BSDs.

      • by Rutulian (171771)

        Six of your criticisms amount to "I don't know how systemd works or how to configure it." While I understand the frustration, it is not a shortcoming of systemd. If you didn't know how to write a shell script, or how runlevels worked, or how to handle your distributions special way of dependency orchestration, you would be saying the same thing about sysV. Systemd is a new way of doing things. It requires you to learn new things, but it is not as hard as you think. Certainly it is a lot easier to adapt to t

  • by Anonymous Coward on Thursday May 08, 2014 @02:17PM (#46952385)

    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.

  • by hierofalcon (1233282) on Thursday May 08, 2014 @03:20PM (#46953145)

    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).

  • by seebs (15766) on Thursday May 08, 2014 @04:31PM (#46953879) Homepage

    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".

  • by manu0601 (2221348) on Thursday May 08, 2014 @08:39PM (#46955549)
    I was using NetBSD, which has no plan to import systemd, I will carry on.

The use of anthropomorphic terminology when dealing with computing systems is a symptom of professional immaturity. -- Edsger Dijkstra

Working...