Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Jun 2012 00:23:47 +0200
From:      "Michael Ross" <gmx@ross.cx>
To:        "Daniel Robbins" <drobbins@funtoo.org>, "Freddie Cash" <fjwcash@gmail.com>
Cc:        Wojciech Puchar <wojtek@wojtek.tensor.gdynia.pl>, "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Subject:   Re: Replacing rc(8) (Was: FreeBSD Boot Times)
Message-ID:  <op.wf725x1gg7njmm@michael-think>
In-Reply-To: <CAOjFWZ63C5mBQBYRnG4GKRBR1uPiyG06Svz_x44_=VnfwL=u7w@mail.gmail.com>
References:  <4FDF6177.5050608@unsane.co.uk> <4FDFB166.2040709@FreeBSD.org> <4FDFB44D.9090308@gentoo.org> <4FE0ADCD.9010109@FreeBSD.org> <4FE0C123.8030301@gentoo.org> <CAGH67wRidMZrzjzTSdwud%2BZ5V--wOTN8CHXOWcOr%2BE5XHYo2rA@mail.gmail.com> <4FE0F773.1080403@gentoo.org> <CAGH67wQdb-c0Kf=60rkaJSH8Hd0OjwCi=rQQMzGq8xfp2q7b=Q@mail.gmail.com> <4FE100F9.2050009@funtoo.org> <20120620073920.GA5300@lonesome.com> <alpine.BSF.2.00.1206201618560.75278@wojtek.tensor.gdynia.pl> <CAPDOV49kkOdeV%2B6LVW5j5PO6VYrrNVqWZEksc_GzvWHjbufoAQ@mail.gmail.com> <alpine.BSF.2.00.1206201722520.1856@wojtek.tensor.gdynia.pl> <CAPDOV4_ufNGyheDAhPxfndJ7WtH_u=5z7mrLtW-5-a9BMbCswg@mail.gmail.com> <alpine.BSF.2.00.1206201745040.1949@wojtek.tensor.gdynia.pl> <CAPDOV4_Fsj_QCLDWSs3o5qiDKS2hTH4qBf8fwJftne8KJNXy1Q@mail.gmail.com> <op.wf7v5el5g7njmm@michael-think> <CAPDOV4_x2T7p_3puD6AKpjoTwFCRPeP6mvvLxRVv_ZrgCTmU3g@mail.gmail.com> <CAPDOV4-2Hz=9fXBJ=oeRFxF7MEeQex946NdpgiPdSJzBwMrcBQ@mail.gmail.com> <CAOjFWZ63C5mBQBYRnG4GKRBR1uPiyG06Svz_x44_=VnfwL=u7w@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Am 20.06.2012, 23:42 Uhr, schrieb Freddie Cash <fjwcash@gmail.com>:

> On Wed, Jun 20, 2012 at 1:28 PM, Daniel Robbins <drobbins@funtoo.org>  
> wrote:
>> On Wed, Jun 20, 2012 at 2:22 PM, Daniel Robbins <drobbins@funtoo.org>  
>> wrote:
>>>
>>> This doesn't change the "hard" runlevel (3) but it changes the OpenRC
>>> logical runlevel. Basically, this convenient system is compatible with
>>> traditional linux numerical runlevels but does depend on them.
>>>
>>
>> Meant to type: "does NOT depend on them".
>>
>> Here is a bit more info:
>>
>> Runlevel-specific conf.d files:
>>
>> http://www.funtoo.org/wiki/Funtoo_Linux_Networking#Alternate_Configs
>>
>> Stacked runlevels (this is a more sophisticated feature than just
>> creating a duplicate, separately-managed runlevel):
>>
>> http://www.funtoo.org/wiki/Stacked_Runlevels
>>
>> To create a separately-managed runlevel, you would just:
>>
>> # mkdir /etc/runlevels/maintenance
>> # rc-update add maintenance svc1
>> # rc-update add maintenance svc2
>> # rc-update add maintenance svc1
>>
>> You could then switch by typing:
>>
>> # rc maintenance
>>
>> Anything not in the maintenance runlevel that is currently running
>> would be stopped, and any new services in maintenance that are not
>> running would be started.
>
> There's no need to do a wholesale replacement of the RC system in
> FreeBSD to support this concept.  What you are describing are "service
> profiles".  And we already have a single file that describes the
> default "service profile" for FreeBSD:  /etc/rc.conf.  That lists
> every service that should be started (or stopped).
>
> All that's missing is a way to tell the RC system to use a different
> rc.conf file (like rc.conf.mobile, or rc.conf.wireless or
> rc.conf.whatever), and to run through the RC setup based on that file.

... and to be able to switch between two configurations at runtime,
without taking down services listed active in both configurations  
preferably.



> Our current RC system does everything needed except:
>   - parallel execution of items that don't depend on each other
>   - monitor running services and restart them if they crash
>
> Compared to all the init/RC systems on Linux, ours has *many*
> advantages, not the least of which are:
>   - very simple text configuration file
>   - only 2 directories of init scripts to worry about (/etc/rc.d;
> /usr/local/etc/rc.d)
>   - ability to create "generic" or global config file (/etc/rc.conf)
> with local overrides (/etc/rc.conf.local)
>   - ability to see the exact order that things will start (or stop) via  
> rcorder
>   - everything is written in nice, simple, sh
>
> We don't need to replace a perfectly working system.  Maybe it needs
> improving, but it doesn't need replacing.
>

Yes.
I don't even think it *needs* improving, but "service profiles" including  
"network profiles" would be really nice and worth looking into. If we can  
get that without loosing the simple text-file-based configuration, the  
better.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?op.wf725x1gg7njmm>