#! /bin/bash # # ibmasm Start/Stop ibmasm driver. # # chkconfig: - 50 50 # description: The IBM Advanced System Management Device Drivers allow\ # software to interact with the Advanced System Management\ # Processor or Adapter. # Source function library. . /etc/init.d/functions RETVAL=0 prog=ibmsphalt pidfile="/var/run/ibmsphalt.pid" lockfile="/var/lock/subsys/ibmsphalt" start() { echo -n $"Starting $prog: " if [ -n "$(pidofproc ibmsphalt)" ]; then echo -n $"$prog: already running" echo_failure echo return 1 fi # Make sure the module (ibmasm) is loaded and its fs is exported. if grep -v -q ibmasmfs /proc/filesystems; then modprobe ibmasm || exit 1 fi echo -en "\nWaiting for ibmasm device to appear (10 seconds timeout)" TIMEOUT=10 for ((i=0; i<$TIMEOUT; i++)); do DEVICE=`/usr/bin/evnode -n "ibmasm RSA I remote mouse"` if [ ! -z $DEVICE ]; then TIMEOUT="ok" break; fi echo -n ". " sleep 1 done # Check the timeout. If not changed, then no device found. if [ $TIMEOUT == "10" ]; then echo -en "No device detected. Aborted." echo_failure echo return 1 fi # Mount the fs. mount -t ibmasmfs ibmasm /var/lib/ibmasm daemon /usr/sbin/$prog RETVAL=$? [ $RETVAL -eq 0 ] && touch $lockfile [ $RETVAL -eq 0 ] && echo_success [ $RETVAL -ne 0 ] && echo_failure echo return $RETVAL } stop() { echo -n $"Stopping ibmasm: " killproc $prog RETVAL=$? /bin/umount /var/lib/ibmasm 2>/dev/null /sbin/modprobe -q -r ibmasm echo [ $RETVAL -eq 0 ] && rm -f $lockfile $pidfile return $RETVAL } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) status $prog RETVAL=$? ;; condrestart) [ -f $lockfile ] && restart || : ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart}" exit 1 esac