[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
fully
initialialize a system and boot up became very easy. Moreover, this addition
introduced service start/stop scheduling bringing the last bits of hard
styles
dependencies.

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
depen-
dency type in parallel. And then get back to supervision parallel service
management.

So, bringing up and shutting down is very fast because of the ability to
keep
parallel start/stop everywhere. Dependant services would wait enough...
because of the dependencies. Ability to really start/stop everything in
parallel
can be enabled in the configuration file along with strict
dependencies--meaning
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
would
attempt to start services... at least 3 times; each attempt would wait
service
{busy,started,faied} status before getting the busy/active status.

Enjoy easy Supervision.

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

PS:

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
lines);
  - Merged sv/.{bin/supervision-backend,opt/svc} to /lib/sv/bin/sp ('p' not
'v');
  - Added new runscript script (/lib/sv/bin/rs, 110 lines); the associated
functions
   file (/lib/sv/sh/runscript-functions, 230 lines);
  - Converted old sv/.bin/mdev-start-dev script to runscript (rs.d/mdev)
service;
  - Added sv/sulogin (30 lines) service for single runlevel;
  - Merged Init-Stage-[123] to /lib/sv/sh/init-stage which now mount
/{proc,run}
    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
almost
    effective single line... and other lines are for fallback to OopenRC
usage;
  - 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