/[smeserver]/rpms/runit/sme9/runit.dependencies.README
ViewVC logotype

Contents of /rpms/runit/sme9/runit.dependencies.README

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Fri Jan 25 18:40:43 2013 UTC (11 years, 10 months ago) by slords
Branch: MAIN
CVS Tags: runit-2_0_0-1_el6_sme, runit-2_1_2-1_el6_sme, HEAD
Initial import

1 After some messing about, I've finished my dependency system for runit,
2 and am now using it to start up and shut down my machine. =)
3
4 I've hacked about on svwaitup and svwaitdown a little; the diff is
5 enclosed and is required to make the dependencies work. Summary of
6 changes:
7 * svwaitup has an option to retry (with a variable delay) if the
8 supervisor is not running or the service is not requested to be up.
9 This was needed as the dependencies are brought up in background
10 processes for parallelism, so the parent has to wait.
11 * svwaitdown has an option not to send the down command to services
12 (still defaults to doing so). This is needed for the inverse situation
13 of the above. =)
14 You need the previous patch I posted as well which creates the tools
15 svisup and svisdown.
16
17 The actual dependency management is done by having links in
18 servicedir/updeps that point to services which must be up first. The
19 reverse dependencies can be automatically generated by the enclosed
20 script svdepcalc, though at the moment it's really stupid and doesn't do
21 any kind of checking for cycles..etc.
22
23 Once the dependency links are there, svup and svdown will bring services
24 up and down in a way which obeys all dependency rules. The way I use it:
25 * All services are in a single directory; no pseudo-runlevels or
26 anything
27 * All services have a 'down' file to stop them starting.
28 * The /etc/runit/1 script runs svup in the background on a dummy service
29 which depends on everything I want to run (apache..etc).
30 * runsvdir starts and brings up the supervisors, and as it does so, svup
31 brings services up.
32
33 Once the machine is up you can use svup and svdown freely to start and
34 stop services in a way which follows the dependencies. Then, to shut
35 down:
36
37 * /etc/runit/3 runs 'for SRV in /service/*; do svdown $SRV; done' which
38 brings services down in line with dependencies. At least, if they
39 terminate properly. There is a timeout for services that don't. (they
40 are not killed at this stage)
41 * /etc/runit/3 runs svwaitdown -kx with a short timeout to clean up any
42 services which did not get terminated cleanly by the above
43 * Halt.
44
45 I make few promises about the actual correct functioning of these
46 scripts and strongly recommend that you have a good read of them (in
47 fact, it'd be nice if you did that anyway to give me some feedback).
48 They work for me on exactly one machine, and have been tested a bit on
49 some fake services as well, but that's not a *lot* of testing.. =)
50
51 Thanks in advance for any comments, and I hope that at least someone
52 finds this useful =)
53
54 Torne

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed