aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <dvlasenk@redhat.com>2010-12-06 15:13:58 +0100
committerDenys Vlasenko <dvlasenk@redhat.com>2010-12-06 15:13:58 +0100
commit75bb332dbd3105cda90d9d544a16ffdd9be19bbd (patch)
treec7c2c016d3f851589ed1e3bac2fb3075c9b057de
parent86aa8030470b6978a099194402de0f692c477c79 (diff)
downloadbusybox-w32-75bb332dbd3105cda90d9d544a16ffdd9be19bbd.tar.gz
busybox-w32-75bb332dbd3105cda90d9d544a16ffdd9be19bbd.tar.bz2
busybox-w32-75bb332dbd3105cda90d9d544a16ffdd9be19bbd.zip
add examples/var_service/README
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
-rw-r--r--examples/var_service/README54
1 files changed, 54 insertions, 0 deletions
diff --git a/examples/var_service/README b/examples/var_service/README
new file mode 100644
index 000000000..75d2ab8c2
--- /dev/null
+++ b/examples/var_service/README
@@ -0,0 +1,54 @@
1In many cases, network configuration makes it necessary to run several daemons:
2dhcp, zeroconf, ppp, openvpn and such. They need to be controlled,
3and in many cases you also want to babysit them. runsvdir is a good tool for this.
4examples/var_service directory provides a few examples. It is meant to be used
5this way: copy it somewhere (say, /var/service) and run something like
6
7env - PATH=... <other vars=...> runsvdir /var/service &
8
9from one of system startup scripts. (Google "man runsvdir" and "man runsv"
10for more info about these tools).
11
12Some existing examples:
13
14var_service/dhcp_if -
15controls a udhcpc instance which provides dhpc-assigned IP
16address on interface named "if". Copy/rename this directory as needed to run
17udhcpc on other interfaces (var_service/dhcp_if/run script uses _foo suffix
18or the parent directory as interface name). When IP address is obtained or lost,
19var_service/dhcp_if/dhcp_handler is run. It saves new config data to
20/var/run/service/fw/dhcp_if.ipconf and (re)starts /var/service/fw service.
21
22var_service/ifplugd_if -
23watches link status of interface if. Downs and ups /var/service/dhcp_if
24service accordingly. In effect, it allows you to unplug/plug-to-different-network
25and have your IP properly re-negotiated at once.
26
27var_service/dhcp_if_pinger -
28Uses var_service/dhcp_if's data (/var/service/dhcp_if/dhcp_if.out file)
29to determine router IP. Pings it. If ping fails, restarts /var/service/dhcp_if
30service. Basically, an example of watchdog service for networks
31which are not reliable and need babysitting.
32
33var_service/fw -
34An *one-shot* service which reconfigures network based on current known state
35of ALL interfaces. Uses conf/*.ipconf (static config) and /var/run/service/fw/*.ipconf
36(dynamic config from dhcp/ppp/vpn/etc) to determine what to do.
37One-shot-ness of this service means that it shuts itself off after single run.
38
39However, any dhcp/ppp/vpn or similar service can restart it anytime
40when it senses the change in network configuration.
41This even works while fw service runs: if dhcp signals fw to (re)start
42while fw runs, fw will not stop after its execution, but will re-execute once,
43picking up dhcp's new configuration.
44This is achieved very simply by having
45# Make ourself one-shot
46sv o .
47at the very beginning of fw/run script, not at the end.
48Therefore, any "sv u /var/run/service/fw" command by any other
49script "undoes" o(ne-shot) command if fw still runs, thus
50runsv will rerun it; or start it in a normal way if fw is not running.
51
52System administrators are expected to edit fw/run script, since
53network configuration needs are likely to be very complex and different
54for non-trivial installations.