Slashdot Mirror


Fork of Systemd Leads To Lightweight Uselessd

An anonymous reader writes A boycott of systemd and other backlash around systemd's feature-creep has led to the creation of Uselessd, a new init daemon. Uselessd is a fork of systemd 208 that strips away functionality considered irrelevant to an init system like the systemd journal and udev. Uselessd also adds in functionality not accepted in upstream systemd like support for alternative C libraries (namely uClibc and musl) and it's even being ported to BSD.

11 of 469 comments (clear)

  1. Re:uClibc removal hardly makes sense by luca · · Score: 4, Informative

    Ok, so the ARM is about to be poised to take over lots of systems (cell phones, etc), and you rip out (to save space) a portable embedded tiny clibrary?

    In fact the article says that uselessd adds support for compiling it under musl and uClibc

  2. Re:udev by caseih · · Score: 5, Informative

    FUD again. The udev module of systemd does not run under PID=1! Please take a look at how systemd is organized before you post something like this.

    $ ps axf | grep systemd | grep -v grep
        1 ? Ss 0:47 /usr/lib/systemd/systemd --system --deserialize 16
      247 ? Ss 2:48 /usr/lib/systemd/systemd-journald
      603 ? Ss 2:20 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
    19211 ? Ss 0:00 /usr/lib/systemd/systemd-udevd
    19260 ? Ss 0:18 /usr/lib/systemd/systemd-logind

    systemd encompasses many things that used to be separate, but that doesn't mean they all run in the same process. Functionality is still kept modular, and you can update systemd without requiring a reboot most of the time. systemctl --daemon-reexec will reload the updated modules.

    I'm not a fan of *ctl commands (hard to type, they don't roll off the fingers), but they are okay.

  3. What a fitting name! by t_hunger · · Score: 2, Informative

    This project is indeed useless:-)

    First it implements the PID1 part of systemd, cutting out things like hostname, date and time management and logind. So this does *not* ship the things that are needed to run Gnome (or soon any other desktop environment). So you need systemd anyway... or a systemd shim or systembsd or whatever to provide the functionality that is missing.

    It removes journald... and with it really nice features like systemctl status whatever showing the last bit of output from that unit. That is a huge step back, especially since much of the journald code still needs to stick around: It is the "internal" logging interface used in systemd. It just feeds it on to syslog now instead of writing it to disk, something you could do with one line of configuration.

    Removal of udev? You need that functionality, so again you will need to install "real" systemd or some other piece of code replacing that. Again you could just reconfigure the "real" systemd to use any alternative implementation in place of its own.

    Then it advertises that it is portable. The developer apparently spend time to make this run on FreeBSD, which is nice, but has anybody in that came ever asked for that? AFAIK they are working on something like Apples launchd. Any other of the BSDs that want systemd? Not that I am aware of.

    Then it is portable to other compilers but gcc. Systemd uses gcc extensions that make for more robust code (e.g. destructors for variables). Ripping that out will just lead to more bugs, especially in the error-paths. Not sure that is worth the trouble.

    Finally it is portable to other libcs. That is actually somewhat nice... even though glibc is the dominant libc implementation on linux systems (that are not android:-).

    Then it removes some really convenient functionality like the timer units. Do we really want to go back to the cryptic crontab syntax? If the job there is somewhat complex it will most likely start a systemd unit anyway (for the security features, resource management, the way better logging or just the better job control). PID1-systemd needs to know the time anyway, and it needs to start jobs, so why not have it start jobs based on the current time? That is definitely less code -- and probably better tested, too -- than running an extra daemon for that rather trivial job.

    It also removes the support for the security frameworks... "to stick to a more clearly defined purpose, one that is agnostic of such elements". Wow, that is just plain stupid. If you want to use these frameworks, then you want to have them in use *everywhere*. That is the whole purpose of those frameworks.

    --
    Regards, Tobias
  4. Re:kill -1 by unrtst · · Score: 4, Informative

    Meh. It's just a slightly-faster reboot that's only usable when you don't need to change the kernel.

    If you rephrase that slightly, it makes a very different case:
    It's just a slightly-faster reboot that's especially useful when you must ensure the kernel doesn't change (ex. unknown illo/grub state).

    There are a handful of other times it's useful. My personal favorite is as a self destruct (secure delete almost all files and free space, then issue kill -1), though there are much better ways of doing that.

  5. Re:kill -1 by Anonymous Coward · · Score: 3, Informative

    Then you will be delighted to learn that, according to uselessd website, they dropped udev and systemd-udev and any dependency to it. They also dropped logind, journald (i.e. no idiotic binary logs), all of the fuckingd retardedd crapd.

    Besides, they give clues (if not full explanation) about which existing third party programs you can use to achieve everything that systemd tried to replace.

    In other words, they keep only what you asked for: the init part.

  6. Re:Err... by phantomfive · · Score: 4, Informative

    That particular blog has been fairly well deconstructed in this thread.
    In short, just because the author calls something a myth, doesn't mean it's actually a myth.

    --
    "First they came for the slanderers and i said nothing."
  7. Re:Not a boycott but a confirmation by Barsteward · · Score: 3, Informative

    You should do more, some even, investigation.

    "20. Myth: systemd makes it impossible to run syslog.
    Not true, we carefully made sure when we introduced the journal that all data is also passed on to any syslog daemon running. In fact, if something changed, then only that syslog gets more complete data now than it got before, since we now cover early boot stuff as well as STDOUT/STDERR of any system service."

    --
    "The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
  8. Re:kill -1 by fnj · · Score: 4, Informative

    Then consider yourself the recipient of valuable information. Signal #1 is SIGHUP ("hangup"). The naming is strictly historical at this point. It is probably easier to remember "kill -HUP <some-daemon's-pid>". Either way you issue it, the command restarts the daemon, or reloads the daemon's config. The precise behavior depends on the coding of the paricular daemon. There is no guarantee except what the man page for the daemon says. SIGHUP used on most non-daemon programs just terminates them. That is the default if a process is not coded to intercept and handle SIGHUP.

    You're entirely right that you could go for an entire career without once using kill -1. Issuing "service <daemon> restart" strikes most people as much more natural. That will send the signal for you. Incidentally, it's high time somebody wrote "service" for systemd. A simple shell script will do it for some definition of "do it".

  9. Re:kill -1 by Smallpond · · Score: 4, Informative

    Is OS X open? no. Is it put together in many different ways from parts from many different developers? no. Do we care whether it becomes a tightly integrated ball of proprietary software? no. So do you understand the issue? no.

  10. Re:launchd by iggymanz · · Score: 3, Informative

    we actually have a mac server, launchd doesn't always launch the 3fd party stuff (like nagios client for example) for whatever reason. I'd take init for it any day of the week

  11. Re:kill -1 by CaptnZilog · · Score: 3, Informative

    I'm in the same boat. Is linux so unreliable and prone to disaster that "kill -1" used on a regular basis?

    Um, you "use" kill -1 *every* time you use "crontab -e", you also "use" it (the SIGHUP signal) for a lot of other things probably, like forcing apache httpd to re-read it's config file, or any number of other similar things where you can make an app/daemon re-read it's config. And if you drop your connection to your login shell without logging out first, it gets a SIGHUP as well.

    It has nothing to do with linux/unix being 'unreliable'.