#! /bin/sh ### BEGIN INIT INFO # Provides: irqbalance # Default-Start: 3 4 5 # Default-Stop: 0 1 6 # Short-Description: start and stop irqbalance daemon # Description: The irqbalance daemon will distribute interrupts across # the cpus on a multiprocessor system with the purpose of # spreading the load ### END INIT INFO # chkconfig: 2345 13 87 # This is an interactive program, we need the current locale # Source function library. . /etc/init.d/functions # Check that we're a priviledged user [ `id -u` = 0 ] || exit 0 prog="irqbalance" [ -f /usr/sbin/irqbalance ] || exit 0 # fetch configuration if it exists # ONESHOT=yes says to wait for a minute, then look at the interrupt # load and balance it once; after balancing exit and do not change # it again. # The default is to keep rebalancing once every 10 seconds. ONESHOT= [ -f /etc/sysconfig/irqbalance ] && . /etc/sysconfig/irqbalance case "$ONESHOT" in y*|Y*|on) ONESHOT=--oneshot ;; *) ONESHOT= ;; esac RETVAL=0 start() { if [ -n "$ONESHOT" -a -f /var/run/irqbalance.pid ]; then exit 0 fi echo -n $"Starting $prog: " if [ -n "$IRQ_AFFINITY_MASK" ]; then export IRQBALANCE_BANNED_CPUS=$IRQ_AFFINITY_MASK fi daemon irqbalance $ONESHOT RETVAL=$? echo return $RETVAL } stop() { echo -n $"Stopping $prog: " killproc irqbalance RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/irqbalance return $RETVAL } restart() { stop start } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status irqbalance ;; restart|reload) restart ;; condrestart) [ -f /var/lock/subsys/irqbalance ] && restart || : ;; *) echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}" exit 1 ;; esac exit $?