#!/bin/sh # # blockdev This shell script takes care of starting and stopping blockdev. # # chkconfig: 2345 01 99 # description: blockdev # # processname: blockdev # config: # pidfile: # Source function library. . /etc/rc.d/init.d/functions # Source blockdev configureation. [ -f /etc/sysconfig/blockdev ] && . /etc/sysconfig/blockdev start() { if [ ! -f /var/lock/subsys/blockdev ]; then for var in $(awk -F= '!/^#/ && !/^$/ {if ($2) print $1}' /etc/sysconfig/blockdev); do realdrive= drive=${var#BLOCKDEV_} if [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then realdrive="/dev/${drive}" elif [ -e "/dev/mapper/${drive}" ]; then realdrive="/dev/mapper/${drive}" elif drive=$(echo $drive | tr _ -) && [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then realdrive="/dev/${drive}" elif [ -e "/dev/mapper/${drive}" ]; then realdrive="/dev/mapper/${drive}" fi if [ -n "$realdrive" ]; then eval PARAMS=\$$var if [ -n "${PARAMS}" ]; then show "Setting parameters for block drive %s (%s)" "$drive" "$PARAMS" busy /sbin/blockdev ${PARAMS} $realdrive ok fi fi done RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/blockdev else msg_already_running blockdev fi } stop() { # Stop daemons. if [ ! -f /var/lock/subsys/blockdev ]; then msg_not_running blockdev fi rm -f /var/lock/subsys/blockdev } RETVAL=0 # See how we were called. case "$1" in start) start ;; stop) stop ;; restart|force-reload) stop start ;; status) status blockdev exit $? ;; *) msg_usage "$0 {start|stop|restart|force-reload|status}" exit 3 esac exit $RETVAL