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