I'm working on getting a Node server up with upstart and monit instead of using a cron job to run a script to check on things. I've built an admin dashboard for the server that uses the Node os module for things like os.loadavg() and os.totalmem(), etc...

The problem is, when monit is running, os.loadavg() always returns [0, 0, 0]. Has anyone else encountered this problem? Does monit create a lock or something that does not allow Node to read that property?

Thanks in advance for any help!

Monit Script

check process flinch
    with pidfile "/var/run/flinch.pid"
    start program = "/sbin/start flinch"
    stop program = "/sbin/stop flinch"
    if loadavg (1min) > 4 then alert
    if loadavg (5min) > 2 then alert
    if memory usage > 0% then alert
有帮助吗?

解决方案

To give this question some closure, I removed monit from the system check and wrote a custom bash script that checks the process and it runs on during a cron job every minute. Monit seems to put a lock on the system stats when in use.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top