#!/bin/sh # # powernowd Starts the powernowd daemon # # chkconfig: 345 45 55 # description: Reduce cpu frequency when idle # processname: powernowd # # pidfile: /var/run/powernowd.pid # Source function library. . /etc/rc.d/init.d/functions # Configuration file. . /etc/sysconfig/powernowd SYSDIR="/sys/devices/system/cpu/cpu0/cpufreq" RETVAL=0 # See how we were called. case "$1" in start) # Start daemons. if [ ! -f /var/lock/subsys/powernowd ]; then LOADMODULE="no" if [ ! -f $SYSDIR/scaling_available_governors ]; then LOADMODULE="yes" else if grep -q userspace $SYSDIR/scaling_available_governors; then LOADMODULE="yes" fi fi if [ "$LOADMODULE" -eq "yes" ]; then _modprobe cpufreq_userspace fi ARGS="" ARGS="$ARGS ${OPERATION_MODE:+-m $OPERATION_MODE}" ARGS="$ARGS ${FREQUENCY_STEP:+-s $FREQUENCY_STEP}" ARGS="$ARGS ${POLLING_FREQUENCY:+-p $POLLING_FREQUENCY}" ARGS="$ARGS ${THREADS_COUNT:+-c $THREADS_COUNT}" ARGS="$ARGS ${CPU_UPPER:+-u $CPU_UPPER}" ARGS="$ARGS ${CPU_LOWER:+-l $CPU_LOWER}" ARGS="$ARGS ${PROGRAM_ARGS}" # starting: msg_starting powernowd daemon powernowd $ARGS RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/powernowd else msg_already_running powernowd fi ;; stop) # Stop daemons. if [ -f /var/lock/subsys/powernowd ]; then msg_stopping powernowd killproc powernowd rm -f /var/lock/subsys/powernowd >/dev/null 2>&1 else msg_not_running powernowd fi ;; reload|force-reload) if [ -f /var/lock/subsys/powernowd ]; then msg_reloading powernowd killproc powernowd -HUP RETVAL=$? else msg_not_running powernowd >&2 exit 7 fi ;; restart) $0 stop $0 start exit $? ;; status) status powernowd exit $? ;; *) msg_usage "$0 {start|stop|restart|reload|force-reload|status}" exit 3 esac exit $RETVAL