modules/freifunk: add olsrd watchdog script, remove olsrd interface defaults
This commit is contained in:
parent
129be80785
commit
bb48f0b5c5
3 changed files with 33 additions and 8 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
29
modules/freifunk/root/usr/sbin/ff_olsr_watchdog
Executable file
29
modules/freifunk/root/usr/sbin/ff_olsr_watchdog
Executable 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
|
Loading…
Reference in a new issue