Forgot your password?
typodupeerror
Ubuntu Debian Linux

Ubuntu To Switch To systemd 279

Posted by Soulskill
from the follow-the-leader dept.
GuerillaRadio writes "Following the decision for Debian to switch to the systemd init system, Ubuntu founder and SABDFL Mark Shuttleworth has posted a blog entry indicating that Ubuntu will now follow in this decision. 'Nevertheless, the decision is for systemd, and given that Ubuntu is quite centrally a member of the Debian family, that's a decision we support. I will ask members of the Ubuntu community to help to implement this decision efficiently, bringing systemd into both Debian and Ubuntu safely and expeditiously.'"
This discussion has been archived. No new comments can be posted.

Ubuntu To Switch To systemd

Comments Filter:
  • by EmperorArthur (1113223) on Friday February 14, 2014 @01:04PM (#46247251)

    Lets face it, sysV init is complicated. Well, the theory behind the old linear start from init script 00 and move to init script 99 isn't, but the modern implementations and the scripts themselves are complicated. I mean you're doing dependency checking and a whole bunch of other things in bash scripts. Compare that to a systemd service file, which is overall nice and readable. So, part of it is factoring out the logic from the variables. The other big thing is bash and the tools used by init scripts are like using a sledgehammer to tap in a finishing nail.

    I'm not going to say that systemd is perfect. I like the "unix" way which is to use small units that do one thing well instead of anything. That's part of the reason I see bash init scripts as too much for the job. Unfortunately, the systemd authors look like they want to throw in everything but the kitchen sink. Well, everything that they can't just port to kernel space that is. But that's the thing, Linux is a Monolithic kernel. Like it or not, the "Linux" way is to have one uber optimized thing with modules to handle everything.

    In the end, I just really like the ease of use of service files. Oh, and the stupidly fast boot time on my laptop is really nice. People who say boot times don't matter aren't living in the real world.

  • by causality (777677) on Friday February 14, 2014 @01:06PM (#46247281)

    "I know nothing about this software but I'm gonna bitch, complain and sling shit at it anyway. How dare they move my cheese!"

    - Typical Slashtard

    Knowledge of the new software is a separate (easier to cheaply ridicule, stay classy) question. The issue with systemd: it reeks of a solution looking for a problem.

    If the existing init systems were causing widespread grief I'd be much more receptive to it. So would just about anyone currently questioning systemd's rapid adoption. Right now the reason for installing it is "everyone else is adopting it as the new standard and it will be increasingly difficult to go against that standard." That's not the best of selling points. It's not like "wow all these problems and limitations I had been experiencing will finally go away!" like you get with truly sensible and evolutionary changes.

    If you think that shouldn't matter to anyone, you could explain why you think so. In the meantime, please make an effort to understand the viewpoint of those who disagree with you. Then you stand a real chance of actually addressing the issue, or at least of not embarassing yourself with smug hand-waving and knee-jerk dismissals based on your annoyance that everyone doesn't already agree with you.

  • Re:I agree (Score:4, Interesting)

    by ZarathustraDK (1291688) on Friday February 14, 2014 @01:06PM (#46247289)
    Your comment made me switch back to Ubuntu. Seems like all the tinfoil-whiners are gone from there now.
  • At a point when even the cheapest SoC has more processing power, memory, and storage space than your current desktop the cost of learning and using a custom system like Busybox will outweigh the benefit for many. For devices that need instant-on capabilities I don't think it's realistic to expect anything other than a custom init, but for the rest I expect programmers to programmers; that is, lazy.
  • by tlhIngan (30335) <.slashdot. .at. .worf.net.> on Friday February 14, 2014 @01:49PM (#46247797)

    Lets face it, sysV init is complicated. Well, the theory behind the old linear start from init script 00 and move to init script 99 isn't, but the modern implementations and the scripts themselves are complicated. I mean you're doing dependency checking and a whole bunch of other things in bash scripts. Compare that to a systemd service file, which is overall nice and readable. So, part of it is factoring out the logic from the variables. The other big thing is bash and the tools used by init scripts are like using a sledgehammer to tap in a finishing nail.

    I'm not going to say that systemd is perfect. I like the "unix" way which is to use small units that do one thing well instead of anything. That's part of the reason I see bash init scripts as too much for the job. Unfortunately, the systemd authors look like they want to throw in everything but the kitchen sink. Well, everything that they can't just port to kernel space that is. But that's the thing, Linux is a Monolithic kernel. Like it or not, the "Linux" way is to have one uber optimized thing with modules to handle everything.

    Well, the BIG problem is maintenance. SysV scripts have both a S and K variant on when to run when switching levels, and you can bet very few people have it properly set up if you do switch levels. Enough so that switching levels is fraught with danger - you can probably start at level 1 (single user), and switch to 3, 4, or 5. Maybe you can get back to 1 because the extra demons get killed. Maybe.

    In the end, it's bit of a maintenance hassle, and while completely understandable, it's a nightmare.

    In fact, I'm guessing most utilities don't even bother handling the case - you just reboot and forget about it.

    After all, computers are good at doing stuff automatically - so stuff like maintaining which services should run at which runlevels should be automated - the init can figure out what it needs to start, what it needs to kill and the order based on dependencies. All the user needs to do is select what needs to run at what runlevel, and the tool does the rest.

    Then there are the various hacks to SysV - PID files (if so many tools need to know the daemon PID, why not have init actually do that work than requiring every script to do it manually?), the fact that state tracking isn't really in the system, and if you need services to relaunch on failure within limits, there ought to be a way to do it without requiring a trip to /etc/inittab to specify that fact.

  • by Anonymous Coward on Friday February 14, 2014 @02:12PM (#46248045)

    Shell scripts are horribly inefficient and systemd is already being used in some embedded systems (BMW for instance).

  • by causality (777677) on Friday February 14, 2014 @02:29PM (#46248245)

    Well, the BIG problem is maintenance. SysV scripts have both a S and K variant on when to run when switching levels, and you can bet very few people have it properly set up if you do switch levels. Enough so that switching levels is fraught with danger - you can probably start at level 1 (single user), and switch to 3, 4, or 5. Maybe you can get back to 1 because the extra demons get killed. Maybe.

    I know what you mean. I've used Linux systems that were set up that way, and it's messy and a bit of a nuisance to make sure the system is really going to do what I think it's going to do.

    Personally I'm a long-time Gentoo user and my system runs OpenRC. Have you ever used it? It eliminates the sources of confusion you illustrate there. It's neat and it's simple and it works and I can forget that it's there. That's what I like about it. There's nothing I want it to do that it doesn't already implement.

    Right now Gentoo is one of the few distros that supports a non-systemd installation, mainly because the idea that as little as possible should ever be forced on the user is one of their core principles. Gentoo has very few mandated default anythings and they encourage users to file a bug if they discover an unnecessary one. I am interested in systemd and I acknowledge it probably isn't taking off so well for no reason, but this is why I'm not in any hurry to adopt it.

    BTW OpenRC does have a form of state tracking. It simply uses start-stop-daemon for this, so that each initscript doesn't need to worry about it.

  • Re:Good...? (Score:4, Interesting)

    by RabidReindeer (2625839) on Friday February 14, 2014 @02:34PM (#46248281)

    One of the biggest selling points of Linux for me was that its log and config files were text files.

    When I first started working with OS/2, one of my principal frustrations was that each and every IBM program product had its own proprietary config and log file format that could only be accessed using a product-specific utility. In Linux, the standard text utilities were all that were needed, and there are text utilities for almost every conceiveable way to search or update those files.

    While there are certain things I like about systemctl and the newer Linux logging manager, their departure from this inherent simplicity disturbs me. It's aking to the trend to provide "improved" systems like Gnome3 or Windows 8 where your gains are offset by your losses.

    Even a relatively open binary system like OLE/COM turned out to be more trouble than it was worth for me. I'd rather not throw out the good with the bad.

  • Re:Sigh. (Score:5, Interesting)

    by caseih (160668) on Friday February 14, 2014 @02:37PM (#46248321)

    Yes if you think systemd is bad, either rip it out on your machine or roll your own distro. Or move to FreeBSD. It's available now, and it runs great. So no need to whine. Just move to an operating system that fits your personal parameters. More likely you'll stick with your current distro and whine and moan about something that you don't well understand.

    On the desktop side of things, I've been watching Linux struggle for years to do simple things like deal with removable media and USB devices. For a while there was hal, then udev, and now systemd. And finally things are actually working, and working rather well. Mostly thanks to udev, but systemd now builds on that. I know many people don't mind manually mounting devices and loading modules to make usb devices work (I don't mind, really). But it's nice to have things automatically work.

    And really systemd on the service isn't that bad an idea either. Fine-grained logging is very useful and conventional syslog is still available and will always be there. Process supervision is something that's been needed for a long while now.

  • Re:Good...? (Score:5, Interesting)

    by Bacon Bits (926911) on Friday February 14, 2014 @03:35PM (#46248973)

    Yes, and you have to understand that that only works because your DE of choice has bent over backwards to make sure all it's dependencies are running and functional when you try to start it. That is to say, startx has to duplicate functionality of init because init is too stupid or too unreliable to be able to do it for your DE.

    This issue can be generalized to any significantly complex application. That means you already have a half dozen "init systems" working on your systems. They're all independent (even though they maybe should know about each other), and you can't manage them universally (even though you might want to fire things off with system level events, like restarting a service if it crashes), and you certainly can't be sure you're not stepping on each others' toes.

    Essentially: a large enough number of people noticed that the same features for starting and managing processes were getting implemented over, and over, and over. They realized that these functions belong in the init role -- because only init has the authority and knowledge required to not screw it up -- but that sysv-init didn't have the capability to do any of that.

    All this began to happen perhaps 10 years ago, when other operating systems (e.g., Windows, which has had service dependencies and crash recovery since Windows 2000) showed what a more feature-complete init system was capable of.

    At this point these "why do we even need a new init system?" questions are like someone watching I-40 getting repaved in the 1970s and asking "why do we even need Interstates?"

  • by trek00 (887323) on Friday February 14, 2014 @04:49PM (#46249853)
    a really interesting reading: http://ewontfix.com/14/ [ewontfix.com]
  • by RR (64484) on Friday February 14, 2014 @04:50PM (#46249861)

    It's actually a drain on embedded systems to do so much through shell scripting, having all those processes running scripts in an interpreted language.

    This is a fallacy. A shell script running on a non-bloated shell (e.g. Busybox ash) consumes less than 50k of dirty pages per instance. It would take at least 20-30 such scripts running to even come close to rivaling systemd's memory usage, and that's not even counting other resources systemd is consuming.

    Memory isn't the only resource. (And if you're using Linux, you're already using a ton of memory.) Systemd brings standardized, concurrent, event-driven startup, so it takes less time to start up, both CPU time and wall clock time. For example, systemd's declarative unit files have much less boilerplate and take less effort to parse than SysV-style init scripts.

    At this point, systemd has also been concentrating on correctness and functionality. They aren't even optimizing for speed and memory consumption, yet. It would be interesting if Busybox added a systemd-style init.

  • by fgodfrey (116175) <fgodfrey@bigw.org> on Friday February 14, 2014 @04:55PM (#46249907) Homepage

    The distros are going with it presumably because they think they need it to turn Linux into a desktop or notebook OS. However, they seem to be ignoring the issues it presents for servers. Let's take my *THREE HOUR* debugging session on systemd yesterday. I had a netboot system up and running. Client boots from Server and mounts root filesystem from Server. I changed from Server A to Server B. Due to an NFSv4 vs. NFSv3 issue, Client could no longer mount the root filesystem read/write. Simple, right? It would've been with SysV init because the errors during the mount would've been spewed to the console and I would've seen them. What *actually* happened is that a bunch of services failed to start. Instead of spewing the error message, systemd "helpfully" told me to run "systemctl status" on the service to see the error message. Except that I never got to a login prompt due to the errors. And I couldn't mount the filesystem read/write so it lost the logs.

    Two+ hours later, I managed to disable enough stuff to get to a login prompt where I was finally able to figure out what was going on (never did get systemctl to show me the logs, probably because they couldn't be written to disk and it doesn't seem to hold them in RAM).

    Please explain to me what the advantage of systemd is again? Because I'm *REALLY* not seeing it. It took something that was trivial to figure out and made it astronomically difficult. I no longer have any idea what order my services start in or whether that order is repeatable. Yes, SysV init scripts were really long. But once you learned them, you realized that you only had to modify 5 or 6 lines of them to get a new service going. I have yet to figure out how to even create a service with systemd or how I figure out what I'm depending on.

    In short, for a server, I have yet to see a single advantage of systemd over SysV init. Maybe I'm missing something and someone will enlighten me, but I'm extremely skeptical.

    Am I just resistant to learning new things? Maybe, but learning stuff takes time and my time is money for my employer. So if I'm not getting a return on my investment of time (in new capabilities or reduced debugging time or *something*), why would I invest the time to become an expert on systemd?

Machines certainly can solve problems, store information, correlate, and play games -- but not with pleasure. -- Leo Rosten

Working...