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

Last change on this file since 3865 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
Line 
1#!/bin/sh
2
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
12if=${PWD##*/dhcp_}
13if=${if%%_pinger}
14
15msg() {
16 echo "`date '+%Y-%m-%d %H:%M:%S'` $*" >>"$0.log"
17}
18
19if test -f "$0.log"; then
20 tail -999 "$0.log" >"$0.log.new"
21 mv "$0.log.new" "$0.log"
22fi
23
24test -f "/var/service/dhcp_$if/env.out" || exec env - sleep "$ping_time"
25
26. "/var/service/dhcp_$if/env.out"
27test x"$router" != x"" || exec env - sleep "$ping_time"
28
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
38
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.