[ANNOUNCE] Supervision Scripts Framework r32

From: toki clover <tokiclover_at_gmail.com>
Date: Sat, 2 May 2015 11:54:15 +0200

Hello Fellow Supervision Users,

Yet another new release! I have previously said in the last releases, that,
writing the init-system bits to initialize a system was easy with the latest
API. Well, true and false. And it obviously depends on the kind of...
requirements are put together on the system.

So, enter a simple runscript API that complements pretty well the other
(supervision) one. With this addition, writing pure runscript services to
initialialize a system and boot up became very easy. Moreover, this addition
introduced service start/stop scheduling bringing the last bits of hard

Now, (runscript/supervision) services are scheduled in each stage-[0123]
(stage-0 for system initialization) and {boot,default,nonetwork,single}
SysVinit style run levels are properly supported.

A bit of (hi)story...
First, adding runscript service support was more than easy after thinking
randomly about it when walking in (down-)town. And then a very simple
and tiny runscript API was written pretty quickly.
Scheduling dependencies and integration was more hard than I guessed.

(Some refinements would not be superfluous... like adding more priority
levels, writing a proper C program for this and launching runscript service.
Follow the following for more info on the...)

A bit of salt or design...
Yet, a simple dependencies scheduling design did not took much time...
by setting priority to dependency type {after,before,use,need}; and adding
level priority in each type: depended services have the high priority, dep-
endant services have normal priority, and other services null priority.

And this design gives the ability to start/stop each level priority per
dency type in parallel. And then get back to supervision parallel service

So, bringing up and shutting down is very fast because of the ability to
parallel start/stop everywhere. Dependant services would wait enough...
because of the dependencies. Ability to really start/stop everything in
can be enabled in the configuration file along with strict
that {after,before} style dependencies are required like need style deps.

And this is usable because... first, supervision services start attempts can
be set in the configuration file, default is 3; and scheduling services
attempt to start services... at least 3 times; each attempt would wait
{busy,started,faied} status before getting the busy/active status.

Enjoy easy Supervision.

[0]: https://github.com/tokiclover


A bit of stats...
Some huge number of line addition/removal was involved because some
re-organization file hierarchy was involved as well.

In short: 164 (no-merge) commits, 66 files changed, 2902 insertions(+),
1574 deletions(-); 1330 lines added!

More details of the change...
  - Moved libray and binary files to /lib/sv/{bin,sh};
  - 3 (x 150 lines) runscript services were added;
  - The manual was heavily edited to accommodate the runscript API (200
  - Merged sv/.{bin/supervision-backend,opt/svc} to /lib/sv/bin/sp ('p' not
  - Added new runscript script (/lib/sv/bin/rs, 110 lines); the associated
   file (/lib/sv/sh/runscript-functions, 230 lines);
  - Converted old sv/.bin/mdev-start-dev script to runscript (rs.d/mdev)
  - Added sv/sulogin (30 lines) service for single runlevel;
  - Merged Init-Stage-[123] to /lib/sv/sh/init-stage which now mount
    in stage-0;
  - Added /lib/sv/sh/dep (100 lines) to generate dependency/priority levels;
  - {runit;s6}/Init-Stage-[123] were trimmed to utter simplicity and an
    effective single line... and other lines are for fallback to OopenRC
  - Added ability to dis/enable OpenRC init-system by setting RC_SYS=No in
    the configuration fle (maybe this should be renamed RC_INIT_SYS...);
  - Other lines were added for the wandering and integration.

Error 404: gentoo user <0123456789> was not found
Received on Sat May 02 2015 - 09:54:15 UTC

This archive was generated by hypermail 2.3.0 : Sun May 09 2021 - 19:44:19 UTC