source: MondoRescue/branches/3.3/mindi-busybox/examples/var_service/dhcp_if_pinger/run

Last change on this file was 3621, checked in by Bruno Cornec, 10 years ago

New 3?3 banch for incorporation of latest busybox 1.25. Changing minor version to handle potential incompatibilities.

  • Property svn:executable set to *
File size: 1.1 KB
RevLine 
[2725]1#!/bin/sh
2
[3621]3# How often to test, seconds
4ping_time=67
5# "One ping, must have reply in 1 sec"
6ping_opts="-c1 -W1 -w1"
7# If ping failed, how soon to retry
8retry_time=5
9# Reinit after this many consecutive ping error
10max_fail=5
11# Interface whose DHCP data to use
[2725]12if=${PWD##*/dhcp_}
13if=${if%%_pinger}
14
[3621]15msg() {
16 echo "`date '+%Y-%m-%d %H:%M:%S'` $*" >>"$0.log"
17}
18
[2725]19if test -f "$0.log"; then
20 tail -999 "$0.log" >"$0.log.new"
21 mv "$0.log.new" "$0.log"
22fi
23
[3621]24test -f "/var/service/dhcp_$if/env.out" || exec env - sleep "$ping_time"
[2725]25
[3621]26. "/var/service/dhcp_$if/env.out"
27test x"$router" != x"" || exec env - sleep "$ping_time"
[2725]28
[3621]29#msg "Pinging $router"
30failcnt=0
31while true; do
32 ping $ping_opts "$router" && exec env - sleep "$ping_time"
33 : $((failcnt++))
34 msg "Failed to ping $router, fail count:$failcnt"
35 test $failcnt -ge $max_fail && break
36 env - sleep "$retry_time"
37done
[2725]38
[3621]39test -d "/var/service/dhcp_$if" && {
40 msg "Restarting /var/service/dhcp_$if"
41 sv t "/var/service/dhcp_$if"
42}
43test -d "/var/service/supplicant_$if" && {
44 msg "Restarting /var/service/supplicant_$if"
45 sv t "/var/service/supplicant_$if"
46}
47exec env - sleep "$ping_time"
Note: See TracBrowser for help on using the repository browser.