[CentOS] What are the differences between systemd and non-systemd Linux distros?

Fri Oct 19 02:33:52 UTC 2018
Young, Gregory <gregory.young at solarwinds.com>

*** This response is my personal opinion and may not reflect that of my employer. ***


>> people are tired of screaming and yelling about systemd, because we've 
>> had years now of the response being "tough, it's the Wave of the 
>> Future"
>
>We covered that back when RHEL 7 was still in beta: the time is far too late to change the init system of RHEL 7.  The fact that you’re tired of being ignored doesn’t enter into it: you could still be yelling about it, and it still wouldn’t change.  Red Has simply isn’t going to >swap out its Enterprise Linux init system within a major release cycle.
>
>I believe it’s certain that RHEL 8 (and thus CentOS 8) will also be systemd-based, since we’d be hearing about the change by now via Fedora if it were otherwise.
>
>Those of you who want a systemd-free CentOS-like OS to be available before CentOS 6 hits EOL are going to have to see to that yourselves.  You cannot expect it to just drop from the sky.
>

After spending the last year and a half preparing a major CentOS 6 based appliance for the upgrade to CentOS 7, I can say when I started the project, I was very much in the "I hate systemd" boat. It was new, different and a drastic change from what I had become accustomed to. I have spent way too many hours cursing systemd, converting init scripts, and handling the different way it does things (like Java app daemons retuning non-zero exit codes for clean shutdowns). Now that I have spent the time getting very intimate with systemd, making it do what I need it to, and learning some of the neat tricks it has up it's sleeves (like the xxx.mount definition files), I actually have come to appreciate it, and the power it contains.

Is the conversion from sysVinit/Upstart services simple and easy? Not in the least, particularly if you are used to the simplicity involved with dropping a launch script in the /etc/init.d/ folder. Does CentOS 7 make allowances for some of this pain? Yes, it still processes the /etc/init.d/ folder in order to allow legacy services to launch as pseudo systemd services. Is it a perfect workaround? Not at all, otherwise I would have had no reason to convert all our services to systemd, and my project would have been done a year ago. Will there ever be a way to automate upgrading a CentOS 6 system and services to CentOS 7 or 8 (like was asked in another thread this week)? It might be do-able for a very basic file server, or possibly even a web server, but with the wide variety of services run on top of CentOS, there would be no foolproof way of automating the process. If someone was to spend the time to create an automated tool to convert init scripts to systemd services, I have a feeling their life would become an unmitigated hell trying to accommodate all the corner cases out there where a simple conversion won't work (and we all know how people love to complain that free software doesn't do what they need it to do for corner case #65,535, and therefore the developer who spent their own time writing it to fill the need their project had, should donate their own time to make it work for corner case #65,535).

If CentOS 8 were to switch back from systemd, I think you would be able to see the explosions from Alpha Centauri as all the developers out there lost their minds after spending all this time converting their apps to work with systemd. If you don't like change, you are more than welcome to go back to using Windows XP (as too many businesses still do because they don't want to spend the time and money updating their LOB software), I'll guarantee you the script kiddies and crypto-criminals will love you.

Greg