Hacker News new | comments | show | ask | jobs | submit login

My day job is to build a custom operating system with systemd. Here are my thoughts about this:

- The amount of stuff systemd is doing for you is insane. For example, I just learned the other day how the systemctl stop command works; first you can send any signal you want to the process from a script (ExecStop=), then if that fails and the process is still running, systemd takes over, sends SIGTERM, waits for a bit (TimeoutStopSec=) then sends a SIGKILL, optionally handling child processes. I wonder if every single of your shell "init script" handle shutdown that nicely...

- I hear this complaint over and over, but systemd is NOT a monolith, you don't need to use every component. I have a system only with systemd as init, systemd-timesyncd (because I prefer it over ntpd) and that's it.

- It has bugs, yes, every software has bugs. We even hit multiple of them, and some of them was fairly unpleasant and hard to find, but it can be known after a bit of digging, because development is on GitHub. Also I'm fairly sure your shell scripts don't have any bugs in them...

- Shared knowledge. I never heard this argument, but you can jump to any other system and understand what's going on immediately if everyone uses the same init system. This is a huge advantage. Fragmenting the landscape with programs which inherently do the same thing just a bit differently is just a bad idea. I also hate split of talent and split of energy. Also, why on earth would you change to another init system ever? Or why would you ever change to an init system you don't know?

- Boot time is way better with systemd. With sysvinit, there is no parallelization. You have runlevels and that's it. I never used more than three, but I use multiple targets (own custom target also) with systemd, because it's easy and you can finally name them and debug them and see the dependency chain for every target.

- Sometimes we need to dig in to old sysvinit scripts and it is a terrible experience. It has still a lot of stanza-like parameters IN COMMENTS (LSB headers). Great idea...

- Systemd DOES NOT break backward compatibility. It can use existing sysvinit scripts. Actually it even default to those if there is both a .service file and init script.

- "One of the critical reasons against systemd concerns the lack of portability to other Unices, and the associated risk to see Linux-based systems detach from the UNIX world."

Anyone seeing the irony here? :D

- Man pages of systemd are quite nice! It's easy to learn from them. You don't even have to google, just check out the relevant man page.

I never understood systemd hate, but I guess it comes from ignorance and lack of willingness to learn about modern system design. The people who made the fork are just a bunch of hissy kids or stuck in stone age who are lazy to learn a new system IMO.




> Also, why on earth would you change to another init system ever? Or why would you ever change to an init system you don't know?

My sentiment exactly, but weren't you building up an argument in favour of SystemD?

> - Systemd DOES NOT break backward compatibility.

No, sometimes it just breaks and leaves you staring at a black screen. If the magical fix appears to be chrooting into you installation from a liveCD and reverting to sysvinit every time, at some point you are going to want to do that upfront.

I don't blame SystemD for existing, or people for using it and being happy with it, but I do blame Debian for defaulting to it when there was no reason to do so at that time other than "mainstream appeal".

>- The amount of stuff systemd is doing for you is insane.

Yes.


> My sentiment exactly, but weren't you building up an argument in favour of SystemD?

Fair point LOL :D

> >- The amount of stuff systemd is doing for you is insane. > Yes.

The emphasis is on FOR YOU, so you don't have to do it, which is a good thing IMO.


I have tried hard to use systemd. It is just a bad piece of software. Simple tasks are over engineered and complex tasks are not modularized.

I think systemd has a philosophical appeal to some but I just want an OS that works without making my life harder. This isn't a comparison against othet init's, I am saying, I have to fight tooth and nail against systemd to a point where I seriously consider Windows server 2012 as a possible better alternative.


What did you try to do with it that was so hard to do?


> The amount of stuff systemd is doing for you is insane.

Runit and daemontools also do this.

> Boot time is way better with systemd.

Yes. The system boots in under one second and will sometimes fail to start services because some package maintainer failed to make it's unit file dependent on another service or because it starts services in unpredictable order which makes interactins between them cause problems.

> The people who made the fork are just a bunch of hissy kids or stuck in stone age who are lazy to learn a new system IMO

These people were so annoyed by systemd being used by default in Debian, that they started an alternative distribution that does not use it. I'd say the effort of doing and maintaining another distribution is several orders of magnitude greater than learning how to use systemd. So it's anything but laziness.


> your shell "init script"

You make the foolish error, called out by the Uselessd Guy long since, of creating a false division into solely van Smoorenburg rc and systemd. Five times over.

* http://uselessd.darknedgy.net/ProSystemdAntiSystemd/

In fact, the world has never been divided into just two.

* https://blog.darknedgy.net/technology/2015/09/05/0/

* http://jdebp.eu./FGA/run-scripts-and-service-units-side-by-s...

You make at least three other errors also, but they are symptomatic of arguing based upon not knowing the subject (ironically, not knowing systemd in one case), which dividing the world into twain is the major egregious case of.


> - It has bugs, yes, every software has bugs. We even hit multiple of them, and some of them was fairly unpleasant and hard to find, but it can be known after a bit of digging, because development is on GitHub. Also I'm fairly sure your shell scripts don't have any bugs in them...

Most init systems are small enough in scope that they have very few if any major issues. Systemd has them all the time. I had never had an issue with an init system other than systemd.

> - Shared knowledge. I never heard this argument, but you can jump to any other system and understand what's going on immediately if everyone uses the same init system. This is a huge advantage. Fragmenting the landscape with programs which inherently do the same thing just a bit differently is just a bad idea. I also hate split of talent and split of energy. Also, why on earth would you change to another init system ever? Or why would you ever change to an init system you don't know?

If you have an init system that is reasonable in scope, it doesn't affect your ability to change to other systems, regardless of which one they use. Most people don't need to touch their init system on a regular basis. Unless they use systemd.

> - Boot time is way better with systemd. With sysvinit, there is no parallelization. You have runlevels and that's it. I never used more than three, but I use multiple targets (own custom target also) with systemd, because it's easy and you can finally name them and debug them and see the dependency chain for every target.

This is complete nonsense. First, runit supports parallel startup, Second it isn't clear how much this matters because startup is heavily disk bound.

> - Systemd DOES NOT break backward compatibility. It can use existing sysvinit scripts. Actually it even default to those if there is both a .service file and init script.

> - "One of the critical reasons against systemd concerns the lack of portability to other Unices, and the associated risk to see Linux-based systems detach from the UNIX world."

> Anyone seeing the irony here? :D

No. This point makes no sense at all. Causing linux to drift away from other unices has nothing whatsover to do with whether or not systemd can run normal init scripts.

> I never understood systemd hate, but I guess it comes from ignorance and lack of willingness to learn about modern system design. The people who made the fork are just a bunch of hissy kids or stuck in stone age who are lazy to learn a new system IMO.

It's somewhat ironic that you are attributing bad faith to people who disagree with you when all of your points are so feeble. Also ironic is that comments like this probably contribute to how much people dislike systemd. If you have a problem with a core operating system component, that is frustrating. If you then go on to an internet forum and read about how some ignorant fool thinks that you frustration is really your fault it really pisses you off.


Out of curiosity, are you working on a publicly available distribution? If so, what is it?


No, sorry. We are building our appliance. We are using Ubuntu as a base.




Applications are open for YC Winter 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: