[systemd-devel] How to get rid of this ordering cycle?

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Thu Aug 14 08:04:01 PDT 2014


On Thu, Aug 14, 2014 at 02:31:00PM +0100, Simon McVittie wrote:
> On 14/08/14 13:27, Vlad Orlov wrote:
> > ### BEGIN INIT INFO
> > # Provides:          mintsystem
> > # Required-Start:    $local_fs $syslog $remote_fs dbus
> > # Required-Stop:     $local_fs $syslog $remote_fs
> > # Default-Start:     S
> > # Default-Stop:  
> > ### END INIT INFO
> 
> As Lennart said, this is Debian-(and-its-derivatives)-specific: upstream
> systemd does not support sysvinit services during early boot, i.e. rcS.
> 
> In Debian, support for sysvinit scripts in rcS was patched back in to
> avoid breaking existing software, because it's unlikely that all of the
> packages listed in
> <http://codesearch.debian.net/search?q=Default-Start%3A\s*S> will get a
> native systemd unit any time soon. Most of them probably doesn't
> actually need to run in rcS - nvi? seriously? - but if fixing them all
> was on the critical path for adopting systemd, we'd probably still be
> using sysvinit for years to come.
Actually, most of them probably don't need to run at all:

util-linux: hwclock.sh               - not necessary with systemd
systemd: "Copy rules generated while the root was ro"
                                     - argh, installing a sysv script as part of systemd?
udev: "Start udevd, populate /dev and load drivers"
                                     - ?? 
procps: "Configure kernel parameters at boottime"
                                     - not necessary with systemd, probably
                                       downright harmful
sysvinit:                            - n/a
kmod: "Load the modules listed in /etc/modules"
                                     - not necessary with systemd
console-setup:                       - not necessary with systemd, probably
                                       will cause a mess by duplicating functionality
xorg:                                - I doubt that this has to run in early boot
insserv:                             - n/a, seems to be some tests
fuse:                                - Not sure what this does, but it proably
                                       should be started on demand only

and then there's

lvm2:
ifupdown:

So there's two scripts to convert, and a bunch to disable. Those that
should be disabled are either already disabled with systemd, or will have
to be for correctness anyway. And that leaves two scripts to take care of.
At least for lvm2, converting it to properly support systemd seems to be
a prerequisite for proper shutdown, and is something that it worth doing
anyway.

For some of those scripts, support in systemd might be inadequate. But
fixing/enhancing systemd is imho a much better approach than adding
workarounds in obsolete init scripts.

Zbyszek


More information about the systemd-devel mailing list