modules/freifunk: add olsrd watchdog script, remove olsrd interface defaults

This commit is contained in:
Jo-Philipp Wich 2009-03-16 17:36:00 +00:00
parent 129be80785
commit bb48f0b5c5
3 changed files with 33 additions and 8 deletions

View file

@ -76,14 +76,6 @@ config defaults dhcp
config defaults olsr_interface config defaults olsr_interface
option HelloInterval 6.0
option HelloValidityTime 108.0
option TcInterval 4.0
option TcValidityTime 324.0
option MidInterval 18.0
option MidValidityTime 324.0
option HnaInterval 18.0
option HnaValidityTime 108.0
config community leipzig config community leipzig

View file

@ -13,6 +13,10 @@ boot() {
echo "* * * * * /usr/sbin/ff_olsr_test_gw" >> /etc/crontabs/root echo "* * * * * /usr/sbin/ff_olsr_test_gw" >> /etc/crontabs/root
} }
grep -q '/usr/sbin/ff_olsr_watchdog' /etc/crontabs/root || {
echo "*/5 * * * * /usr/sbin/ff_olsr_watchdog" >> /etc/crontabs/root
}
[ -f /etc/rc.local ] && . /etc/rc.local [ -f /etc/rc.local ] && . /etc/rc.local
[ -d /etc/rc.local.d ] && { [ -d /etc/rc.local.d ] && {
for file in /etc/rc.local.d/*; do for file in /etc/rc.local.d/*; do

View file

@ -0,0 +1,29 @@
#!/usr/bin/lua
require "os"
require "io"
require "uci"
require "posix"
if posix.access("/var/run/olsrd.pid") then
local stamp, intv
local x = uci.cursor()
x:foreach("olsrd", "LoadPlugin",
function(s)
if s.library == "olsrd_watchdog.so.0.1" then
intv = tonumber(s.interval)
stamp = s.file
end
end)
if intv and posix.access(stamp) then
local systime = os.time()
local wdgtime = tonumber(io.lines(stamp)())
if not wdgtime or ( systime - wdgtime ) > intv then
os.execute("logger -t 'OLSR watchdog' 'Process died - restarting!'")
os.execute("/etc/init.d/olsrd restart")
end
end
end