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