Date: Wed, 19 Dec 2018 22:36:04 +0800 From: Martin Wilke <miwi@FreeBSD.org> To: freebsd-hackers@FreeBSD.org Cc: Joe Maloney <jmaloney@ixsystems.com>, ken@ixsystems.com, wblock@FreeBSD.org, kmoore@FreeBSD.org, Marcelo Araujo <araujo@FreeBSD.org> Subject: OpenRC on FreeBSD Message-ID: <397FBAFF-2575-4AE4-B2BC-2DFDA769040A@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
Hi I'd like to reopen the discussion for OpenRC on FreeBSD. Basically this = is the second attempt to get it into FreeBSD. I've opened a review here with a working patch for CURRENT, https://reviews.freebsd.org/D18578 To recap the discussion * First attempt of RFC in March of 2018: = https://lists.freebsd.org/pipermail/freebsd-hackers/2018-March/052358.html= * Working group at BSDCan: = https://wiki.freebsd.org/DevSummit/201806/OpenRC Here some key points: 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. 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. OpenRC and RC: Both can coexist and be chosen with a setting in /boot/loader.conf. OpenRC Features: 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. 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. 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. Interactive mode: The boot process can be run interactively for more effective debugging. 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). OpenRC, by default, provides a =E2=80=9Ccolorized=E2=80=9D text boot, = using ANSI color sequences. This can be disabled. 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. 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. Tested: OpenRC has been used as the init system for TrueOS since October = 2016. 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> I look forward to discuss the features and capabilities of OpenRC. Regards, Martin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?397FBAFF-2575-4AE4-B2BC-2DFDA769040A>