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

Annotation of /rpms/runit/sme7/runit.dependencies.README

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


Revision 1.1 - (hide annotations) (download)
Tue Jun 12 17:21:02 2007 UTC (17 years, 5 months ago) by slords
Branch: MAIN
CVS Tags: runit-1_7_2-1_el4_sme, runit-2_0_0-1_el4_sme, HEAD
Import on branch sme7 of package runit-1.7.2-1.el4.sme.src.rpm

1 slords 1.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