1234567891011121314151617181920212223242526272829 |
- #!/usr/bin/lua
- require "os"
- require "io"
- require "uci"
- local fs = require "nixio.fs"
- if fs.access("/var/run/olsrd.pid") or fs.access("/var/run/olsrd4.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 fs.access(stamp) then
- local systime = os.time()
- local wdgtime = tonumber(io.lines(stamp)())
- if not wdgtime or ( systime - wdgtime ) > ( intv * 2 ) then
- os.execute("logger -t 'OLSR watchdog' 'Process died - restarting!'")
- os.execute("/etc/init.d/olsrd restart")
- end
- end
- end
|