#!/bin/sh # # This is just a sample script for httpd resource monitoring # While this is inside the codepot distro, it's not supposed # to be used without consideration of the actual environment. # DAEMON=0 THRESHOLD=1024 if [ "$1" = "-daemon" ] then shift ($0 --daemon $@ /dev/null 2>&1 &) & #($0 --daemon &) & exit 0 elif [ "$1" = "--daemon" ] then DAEMON=1 fi [ -n "$2" ] && THRESHOLD="$2" exit_requested=no trap 'exit_requested=yes' SIGINT SIGHUP SIGTERM [ "${DAEMON}" = "1" ] && logger -t "$0" "Started (THRESHOLD=$THRESHOLD)" while [ "${exit_requested}" = "no" ] do sleep 5 ps -ylC httpd | awk -vdaemon=$DAEMON -v"self=$0" -vthreshold=$THRESHOLD ' /httpd/ { x += $8; y += 1; } END { if (y > 0) { MB = x / 1024; AVGMB = x / (y * 1024); if (daemon <= 0) { print "Apache Memory Usage (MB): " MB; print "Average Proccess Size (MB): " AVGMB; if (MB > int(threshold)) { system ("/etc/init.d/httpd restart"); } } else { if (MB > int(threshold)) { system (sprintf ("logger -t \"%s\" \"Restarting httpd for excess memory usage [%s/%d]\"", self, MB, threshold)); system ("/etc/init.d/httpd restart >/dev/null 2>&1