I need a simple, yet effective solution to monitor two system services running on OpenWrt device. They are started as a init.d processes. I need to check whether the processes run, and if not, start them again. In case the process cannot start due to some persistent problem, I need to send notification - either e-mail or API request.
I think this is the wrong thread. But basically monit does what you like to implement.
For just one or two processes, I will often just do a custom script and set it up in cron to run periodically. If you navigate to System -> Scheduled Tasks in LuCI, that is an interface to cron.
Here is a simple example on one of my devices that checks if an sshfs filesystem has dropped out and resets it if it has.
# ---------------------- Minute (0 - 59)
# | ------------------ Hour (0 - 23)
# | | -------------- Day (1 - 31)
# | | | ---------- Month (1 - 12)
# | | | | ------ Day of week (0 - 6, Sunday = 0)
# | | | | |
# - - - - -
*/7 * * * * /root/bin/reSync
if [ ! -f /root/Sync/syncthis ]; then
/usr/bin/sshfs email@example.com:Sync /root/Sync
It's more handraulic, but it lets you do anything a shell script can do. Sending e-mail this way requires a package like
mailsend to be configured. When you say an API, I assume you mean through a web server? Both
wget can likely do this.
EDIT: I haven't used monit, but it looks like it might be a simpler solution. I mention the above, though, in case you need more versatility than monit offers.