From: Robert David <robert.david.public@gmail.com>
To: "Michał Górny" <mgorny@gentoo.org>
Cc: gentoo-dev@lists.gentoo.org, lu_zero@gentoo.org
Subject: Re: [gentoo-dev] eselect init
Date: Sun, 26 May 2013 11:32:43 +0200 [thread overview]
Message-ID: <20130526113243.27723825@gmail.com> (raw)
In-Reply-To: <20130526112025.7bf00d3f@gentoo.org>
On Sun, 26 May 2013 11:20:25 +0200
Michał Górny <mgorny@gentoo.org> wrote:
> On Sun, 26 May 2013 10:58:23 +0200
> Robert David <robert.david.public@gmail.com> wrote:
>
> > On Sun, 26 May 2013 08:43:32 +0200
> > Michał Górny <mgorny@gentoo.org> wrote:
> >
> > > On Sat, 25 May 2013 11:54:48 +0200
> > > Luca Barbato <lu_zero@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...
> > >
> > > 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.
> > >
> > > 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*.
> > >
> > > And since you've been failing long at keeping init.d scripts
> > > simple and reasonable, the damage potential is not something
> > > purely theoretical.
> > >
> > > That said, switching /sbin/init is the reasonable way. If it
> > > fails, Linux runs /bin/sh. EOT. You broke, you fix, any way you
> > > like. Without unexpectedly switching init system to something
> > > else just because it was around.
> >
> > I agree with this. But changing symlinks is not as easy on running
> > system (since it can cause inconsistence during rebooot).
>
> It is *easy*.
>
> ln -s /sbin/newinit /sbin/init.new
> mv /sbin/init.new /sbin/init
>
> Easy and atomic. The inconsistency potential is similar to one given
> by init upgrades. Yet we don't do anything magical to defer init
> upgrade until reboot, and that's why the upgrades go smoothly.
You are right. Even though, it is highly appreciated to inform user on
urgent reboot.
>
> > I think that safest way not using wrapper is to stop all services
> > and keep only mounted /, than change things (symlinks,configuration
> > update) and reboot.
>
> This can be done two ways.
>
> One is hacking into init (RC) reboot procedure. It's fragile, it needs
> to be fit into the right moment and I'm not sure if all inits will
> handle this without actually needing to patch the code. And in the
> end, the init gets replaced before init stops working anyway.
>
> The other is going beside init and directly into the reboot. This
> either requires kernel hacking (please don't!) or hacking the reboot
> procedure in init code. And of course remounting R/W, then writing,
> remounting back...
>
I did not say it will be easy. Still I think there is space to
investigate deeply how to handle that more cleanly (eg: onetime late
shutdonw initscript/unit). No one will be hacking kernel:)
Robert.
next prev parent reply other threads:[~2013-05-26 9:33 UTC|newest]
Thread overview: 139+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-25 9:54 [gentoo-dev] eselect init Luca Barbato
2013-05-25 10:25 ` Peter Stuge
2013-05-25 11:57 ` Tom Wijsman
2013-05-26 1:52 ` Walter Dnes
2013-05-26 8:50 ` Tom Wijsman
2013-05-26 2:02 ` Peter Stuge
2013-05-26 8:56 ` Tom Wijsman
2013-05-25 19:08 ` Matthew Thode
2013-05-26 14:13 ` Ian Stakenvicius
2013-05-26 23:54 ` Luca Barbato
2013-05-25 11:13 ` Pacho Ramos
2013-05-25 12:03 ` Tom Wijsman
2013-05-25 12:25 ` Pacho Ramos
2013-05-25 15:42 ` Luca Barbato
2013-05-25 11:29 ` Sergei Trofimovich
2013-05-25 12:12 ` Tom Wijsman
2013-05-25 13:15 ` Luca Barbato
2013-05-25 17:35 ` Sergei Trofimovich
2013-05-25 19:49 ` Chí-Thanh Christopher Nguyễn
2013-05-25 12:13 ` hasufell
2013-05-25 15:51 ` Luca Barbato
2013-05-25 13:38 ` Tom Wijsman
2013-05-25 19:09 ` J. Roeleveld
2013-05-25 19:55 ` Tom Wijsman
2013-05-25 20:07 ` Alex Xu
2013-05-25 20:59 ` Tom Wijsman
2013-05-26 12:59 ` J. Roeleveld
2013-05-26 13:58 ` Tom Wijsman
2013-05-26 14:54 ` Ian Stakenvicius
2013-05-26 13:15 ` Michał Górny
2013-05-26 14:07 ` Tom Wijsman
2013-05-26 14:44 ` Rich Freeman
2013-05-26 6:43 ` Michał Górny
2013-05-26 8:58 ` Robert David
2013-05-26 9:20 ` Michał Górny
2013-05-26 9:32 ` Robert David [this message]
2013-05-26 9:45 ` Tom Wijsman
2013-05-26 10:09 ` Michał Górny
2013-05-26 11:45 ` Tom Wijsman
2013-05-26 12:01 ` Michał Górny
2013-05-26 9:21 ` Tom Wijsman
2013-05-26 10:01 ` Robert David
2013-05-26 10:11 ` Rich Freeman
2013-05-26 10:18 ` Chí-Thanh Christopher Nguyễn
2013-05-26 11:28 ` hasufell
2013-05-26 12:10 ` Tom Wijsman
2013-05-26 9:55 ` Luca Barbato
2013-05-26 10:39 ` Tom Wijsman
2013-05-26 10:57 ` Michał Górny
2013-05-26 11:40 ` Luca Barbato
2013-05-26 12:08 ` Michał Górny
2013-05-26 12:24 ` Luca Barbato
2013-05-26 14:58 ` Ian Stakenvicius
2013-05-27 10:36 ` [gentoo-dev] Switchup-mode and boottime selector? Was: " Duncan
2013-05-27 20:26 ` Alex Xu
2013-05-27 22:40 ` Walter Dnes
2013-05-28 9:56 ` [gentoo-dev] " Duncan
2013-05-28 11:56 ` Tom Wijsman
2013-05-29 0:36 ` Duncan
2013-05-29 8:52 ` Tom Wijsman
2013-05-29 18:15 ` Walter Dnes
2013-05-29 19:56 ` Tom Wijsman
2013-05-29 20:55 ` William Hubbs
2013-05-30 0:06 ` Tom Wijsman
2013-05-30 0:22 ` William Hubbs
2013-05-30 1:36 ` Duncan
2013-05-30 6:35 ` Tom Wijsman
2013-05-30 20:41 ` William Hubbs
2013-05-30 6:46 ` Ciaran McCreesh
2013-05-30 13:54 ` Ian Stakenvicius
2013-05-31 6:21 ` Ciaran McCreesh
2013-05-30 6:30 ` Luca Barbato
2013-06-22 19:35 ` Markos Chandras
2013-05-30 2:52 ` Walter Dnes
2013-05-30 6:19 ` Tom Wijsman
2013-05-30 6:36 ` Dale
2013-05-30 6:31 ` Ciaran McCreesh
2013-05-28 3:55 ` [gentoo-dev] " Luca Barbato
2013-05-28 4:19 ` Michał Górny
2013-05-28 4:43 ` Luca Barbato
2013-05-28 12:15 ` Ian Stakenvicius
2013-05-28 12:15 ` Ian Stakenvicius
2013-05-26 11:58 ` Tom Wijsman
2013-05-26 14:52 ` Luca Barbato
2013-05-26 15:39 ` Tom Wijsman
2013-05-26 16:41 ` William Hubbs
2013-05-26 16:48 ` William Hubbs
2013-05-26 16:55 ` Michał Górny
2013-05-26 22:58 ` William Hubbs
2013-05-26 23:47 ` Luca Barbato
2013-05-27 23:45 ` [gentoo-dev] Separate boot/root already [WAS: eselect init] Walter Dnes
2013-05-28 15:07 ` Luca Barbato
2013-06-01 9:23 ` [gentoo-dev] Re: eselect init Steven J. Long
2013-06-01 11:43 ` Steven J. Long
2013-06-02 9:15 ` Luca Barbato
2013-06-02 18:20 ` [gentoo-dev] " Steven J. Long
2013-06-02 18:48 ` Fabio Erculiani
2013-06-08 13:37 ` [gentoo-dev] " Steven J. Long
2013-06-02 22:35 ` [gentoo-dev] " Luca Barbato
2013-06-03 0:37 ` Walter Dnes
2013-06-03 0:57 ` Rich Freeman
2013-06-03 7:03 ` Tom Wijsman
2013-06-03 9:42 ` Luca Barbato
2013-06-03 6:19 ` [gentoo-dev] " Duncan
2013-06-03 6:26 ` [gentoo-dev] " Pacho Ramos
2013-06-04 18:55 ` William Hubbs
2013-06-04 19:09 ` Rich Freeman
2013-06-08 13:28 ` [gentoo-dev] " Steven J. Long
2013-06-20 10:16 ` [gentoo-dev] " Fabio Erculiani
2013-06-20 17:10 ` [gentoo-dev] " Steven J. Long
2013-06-20 20:48 ` William Hubbs
2013-06-25 4:53 ` [gentoo-dev] " Steven J. Long
2013-06-20 20:56 ` [gentoo-dev] " William Hubbs
2013-06-21 2:39 ` Michał Górny
2013-06-21 4:16 ` William Hubbs
2013-06-21 10:23 ` Michał Górny
2013-06-21 15:16 ` William Hubbs
2013-06-21 15:23 ` Fabio Erculiani
2013-06-21 16:42 ` William Hubbs
2013-06-22 11:23 ` Jason A. Donenfeld
2013-06-22 11:57 ` hasufell
2013-06-21 19:34 ` Luca Barbato
2013-06-22 1:27 ` Ulrich Mueller
2013-06-22 1:48 ` Michael Weber
2013-06-21 15:29 ` Michał Górny
2013-06-21 16:13 ` Markos Chandras
2013-06-21 16:50 ` William Hubbs
2013-06-21 19:36 ` Luca Barbato
2013-06-21 10:30 ` Michael Weber
2013-06-21 11:19 ` Fabio Erculiani
2013-06-21 11:26 ` Pacho Ramos
2013-06-21 11:50 ` Luca Barbato
2013-06-21 14:36 ` William Hubbs
2013-06-21 15:48 ` Pacho Ramos
2013-06-22 6:59 ` [gentoo-dev] " Duncan
2013-06-22 10:07 ` Pacho Ramos
2013-06-22 11:13 ` Michael Weber
2013-06-22 11:26 ` Rich Freeman
2013-06-22 17:05 ` Luca Barbato
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130526113243.27723825@gmail.com \
--to=robert.david.public@gmail.com \
--cc=gentoo-dev@lists.gentoo.org \
--cc=lu_zero@gentoo.org \
--cc=mgorny@gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox