Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Dec 2018 22:57:23 +0800
From:      Martin Wilke <miwi@FreeBSD.org>
To:        Warner Losh <imp@bsdimp.com>
Cc:        "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>, Joe Maloney <jmaloney@ixsystems.com>, Marcelo Araujo <araujo@freebsd.org>, ken@ixsystems.com, Kris Moore <kmoore@freebsd.org>, Warren Block <wblock@freebsd.org>
Subject:   Re: OpenRC on FreeBSD
Message-ID:  <7BBA9943-7CA1-4349-9B48-1641BA11FCA3@FreeBSD.org>
In-Reply-To: <CANCZdfp%2BQXngCRqevXT%2BDKgQj1S276PdpvqyZpiuOC%2BvMAP24A@mail.gmail.com>
References:  <397FBAFF-2575-4AE4-B2BC-2DFDA769040A@FreeBSD.org> <CANCZdfp%2BQXngCRqevXT%2BDKgQj1S276PdpvqyZpiuOC%2BvMAP24A@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

The missing bit was actually the flag for switching the rc=E2=80=99s =
which have been resolved.=20

- Martin

> On 19 Dec 2018, at 10:51 PM, Warner Losh <imp@bsdimp.com> wrote:
>=20
>=20
>=20
> On Wed, Dec 19, 2018 at 7:39 AM Martin Wilke <miwi@freebsd.org =
<mailto:miwi@freebsd.org>> wrote:
> Hi
>=20
> I'd like to reopen the discussion for OpenRC on FreeBSD. Basically =
this is the second attempt to get it into FreeBSD.
>=20
> I've opened a review here with a working patch for CURRENT,
> https://reviews.freebsd.org/D18578 =
<https://reviews.freebsd.org/D18578>;
>=20
>=20
> To recap the discussion
>     * First attempt of RFC in March of 2018: =
https://lists.freebsd.org/pipermail/freebsd-hackers/2018-March/052358.html=
 =
<https://lists.freebsd.org/pipermail/freebsd-hackers/2018-March/052358.htm=
l>
>     * Working group at BSDCan: =
https://wiki.freebsd.org/DevSummit/201806/OpenRC =
<https://wiki.freebsd.org/DevSummit/201806/OpenRC>;
>=20
> Here some key points:
>=20
> OpenRC provides additional features for service management without =
requiring kernel changes or replacing pid 1, unlike launchd and other =
solutions.  All rc.d scripts have been converted with a few changes, =
typically changing the shebang and making sure the start function is =
named start(). Most service scripts are simplified, usually needing only =
name, command, and, if required, depends statements.
>=20
> History:
> OpenRC started out as an init system by Roy Marples, developed for the =
Gentoo Alt (FreeBSD) kernel branch. It was more widely adopted into =
Gentoo as baselayout v2, and was then split off as a separate =
BSD-licensed project. It is under active development, portable, and =
remains BSD licensed today.
>=20
> OpenRC and RC:
> Both can coexist and be chosen with a setting in /boot/loader.conf.
>=20
> OpenRC Features:
>=20
> Service supervision and service monitoring: any service can be =
supervised. Supervised services that crash are automatically restarted. =
The rc-status command shows how many times a service has restarted.
>=20
> Device hotplug support and event-driven service management: the =
hotplug feature allows devd to take actions when devices are connected. =
For example, a USB wifi adapter can create additional network services =
when attached. The net-online service can, for example, detect when a =
network connection is restored, and restart ntp.
>=20
> Network profiles: using stacked runlevels, different profiles can be =
established for different networking settings. For instance, different =
profiles can be used for wired or wireless networking, or for differing =
wireless networks, as well as dependency caching and parallel startup =
speed up booting.
>=20
> Interactive mode:
> The boot process can be run interactively for more effective =
debugging.
>=20
> OpenRC uses the term =E2=80=9Crunlevels=E2=80=9D to refer to the =
context in which a script is running. There are only three at present:
> sysinit (the OpenRC system is starting), boot (start base services =
when the computer is booting), and default (normal execution).
>=20
> OpenRC, by default, provides a =E2=80=9Ccolorized=E2=80=9D text boot, =
using ANSI color sequences. This can be disabled.
>=20
> Ports:
> As of July 2017, iXsystems has created OpenRC versions of port service =
scripts for the entire ports tree. These scripts coexist with the rc.d =
versions.
>=20
> License:
> OpenRC is a BSD licensed RC init system written in C. =46rom a user =
perspective, it is very similar to the FreeBSD rc.d init system, making =
it easy to use and learn.
>=20
> Tested: OpenRC has been used as the init system for TrueOS since =
October 2016.
>=20
> Ken Moore has an OpenRC vs RC.d comparison which can be found here:
> http://www.wonkity.com/~wblock/openrc/OpenRC_rc.d.pdf =
<http://www.wonkity.com/~wblock/openrc/OpenRC_rc.d.pdf>; =
<http://www.wonkity.com/~wblock/openrc/OpenRC_rc.d.pdf =
<http://www.wonkity.com/~wblock/openrc/OpenRC_rc.d.pdf>>;
> I look forward to discuss the features and capabilities of OpenRC.
>=20
> This is cool technology.
>=20
> However, what was missing last time was a written plan that could be =
critiqued for fit with the project's needs. The result of the working =
group was that this was to be produced, and we'd iterate through it to =
ease the landing of openrc in the tree. I think there's wide agreement =
this is cool, and that we'd like tot have both it and rc.d in the tree =
for a transition period. Absent a plan, though, it's not really possible =
to say 'go do it' or 'that's insane'.
>=20
> So maybe start there?
>=20
> Warner




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7BBA9943-7CA1-4349-9B48-1641BA11FCA3>