One argument I hear often about systemd is that it more adapted to current hardware needs, e.g. here

Computers changed so much that they often doesn’t even look like computers. And their operating systems are very busy : GPS, wireless networks, USB peripherals that come and go, tons of softwares and services running at the same time, going to sleep / waking up in a snap… Asking the antiquated SysVinit to manage all this is like asking your grandmother to twerk.

What I don't understand is how an init system manages hot pluggable devices.
What does replacing a hot plugable disk drive it have to do with how the system is booted?
Maybe this all done at the none init parts of systemd?

I know this is a hot topic for some people. It is not meant to ignite a war, rather to understand.

Please explain it to me with out flames.

  • This is not very well suited for a Q&A format for it's hard (impossible) to outline every possible item in a single answer. – intelfx Jul 22 '15 at 12:30

Systemd reimplements many functionalities previously scattered over the whole OS (eg. in udev daemon), and is able to recognize that device was just plugged in or out.

At the same time, systemd holds all system services configuration: what need to be run, how to run it etc. And simply, it has all knowledge needed to start, stop, or even reconfigure services related to hot pluggable devices.

Classic init system doesn't manage hot pluggable devices at all. It just starts services in a defined order and that's mostly all.

One of such services is udev daemon, which handles hot pluggable devices. But it's not able to start a service, when device is plugged in, at least without custom scripts made for local machine.


What does replacing a hot plugable disk drive it have to do with how the system is booted?

It doesn't manage hotpluggable devices, but it has the information to react to the events a hotplug produces, it may start, stop restart a service, you can ask it to mount the disk and it will know if it is still there when the system reboots so it is unmounted in the right order at the right time.

The old sysvinit has no idea about the state of the system, once the initial set of services self-report "I started" then its job is done, this is terrible for a number of reasons.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.