On 5/26/13 8:43 AM, Michał Górny wrote:
On Sat, 25 May 2013 11:54:48 +0200
Luca Barbato <lu_z...@gentoo.org> wrote:

- /sbin/init (or whatever linux currently calls by default with top
priority) should be either a symlink to the actual implementation or a
wrapper such as our gcc one. I like better the latter since it is
overall safer. The former might or might work since linux has some
fallback capabilities but hadn't been tested.

Increased complexity is never safer. And a wrapper means the additional
complexity gets there every boot. And considering how the discussion
goes, the wrapper will grow openrc-size in a few months...

Openrc is small, but the wrapper really needs to know which is which and worst case switch inittab.

Symlinks are simple. They're filesystem feature, they're handled
by kernel. The worst thing that could happen is symlink target
disappearing -- but then it's:

a) our responsibility to make sure to call eselect-init (if applies)
when uninstalling an init system,

b) something that would fail anyway if user did that by hand.

Linux fallback mechanism is *good enough*. You may think that fallback
to sysvinit is good but it's not. *If* I have my system set up to boot
X, at some point the config for Y will get seriously outdated.

Have you tested it? Do you know what is the reaction of do_exec on a dangling symlink?

I use systemd for a few months now, and last time I checked openrc
boots somehow. But considering the general complexity of it, I wouldn't
be much surprised if it failed in funny ways (like not being able to
handle automounts properly), caused cruft on the filesystem or even
caused *damage*.

openrc is *simpler* much *simpler* than systemd, stop with that.

And since you've been failing long at keeping init.d scripts simple
and reasonable, the damage potential is not something purely
theoretical.

wc -l is a good answer to your concern. Some scripts have to be simplified, that's a given (e.g. Fabio pointed the lvm one can be improved a lot) but it isn't the case for most of them.

Pointless and overcomplex. If an init system actually fails to work
when /sbin/init doesn't point to it, it is seriously broken by design.
And because of that breakage, we keep stuff like 'telinit' or 'reboot'
intact, and because of it systemd has 'pass-through' mode when linked
to /sbin/init.

Check your facts, systemd either understands a flavour of inittab or the other or none at all.

Which means the kernel fallback will be dangerously active
as I explained before. Just don't do it.

It is not dangerous beside for those that have an inittab with rm -fR /

lu

Reply via email to