LQPP/lf-daemon.sh
< LQPP
#!/bin/sh PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin" LOGFILE="/var/log/lf-daemon.log" PIDFILE="/var/run/lf-daemon.pid" LASTDURATIONFILE=/ PID=$$ # log to console, logfile and syslog log () { echo "$1" echo "$( date '+%R %F' ) $1" | tee -a "${LOGFILE}" | logger -t "lf-daemon" }
# start only once if [ -f "${PIDFILE}" ] && kill -CONT $( cat "${PIDFILE}" ) 2>/dev/null then log "lf-daemon is already running" exit 1 fi # save pid echo "${PID}" > "${PIDFILE}" log "running lf-daemon.sh with PID ${PID}" while true do do MSG=$( /usr/bin/time --format="run time was: %e" -a -o "${LOGFILE}" nice /opt/liquid_feedback/core/lf_update dbname=liquid_feedback_pp 2>&1 ) ERR="$?" if [ "$ERR" -ne 0 ] then log "ERROR: $ERR Message: $MSG" fi SLEEPTIME=$( awk '{ print $1 *20 + 5 }' /proc/loadavg ) log "sleeping $SLEEPTIME" sleep $SLEEPTIME done