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
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

View file

@ -13,6 +13,10 @@ boot() {
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
[ -d /etc/rc.local.d ] && {
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