3 # blockdev This shell script takes care of starting and stopping blockdev.
5 # chkconfig: 2345 01 99
6 # description: blockdev
8 # processname: blockdev
12 [ -f /etc/sysconfig/blockdev ] || exit 0
14 blockdevs=$(awk -F= '!/^#/ && !/^$/ {if ($2) print $1}' /etc/sysconfig/blockdev)
15 if [ -z "$blockdevs" ]; then
17 start|stop|restart|force-reload)
23 # Source function library.
24 . /etc/rc.d/init.d/functions
26 # Source blockdev configuration.
27 . /etc/sysconfig/blockdev
30 if [ ! -f /var/lock/subsys/blockdev ]; then
31 for var in $blockdevs; do
33 drive=${var#BLOCKDEV_}
34 if [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
35 realdrive="/dev/${drive}"
36 elif [ -e "/dev/mapper/${drive}" ]; then
37 realdrive="/dev/mapper/${drive}"
38 elif drive=$(echo $drive | tr _ -) && [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
39 realdrive="/dev/${drive}"
40 elif [ -e "/dev/mapper/${drive}" ]; then
41 realdrive="/dev/mapper/${drive}"
44 if [ -n "$realdrive" ]; then
46 if [ -n "${PARAMS}" ]; then
47 show "Setting parameters for block drive %s (%s)" "$drive" "$PARAMS"
49 /sbin/blockdev ${PARAMS} $realdrive
55 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/blockdev
57 msg_already_running blockdev
63 if [ ! -f /var/lock/subsys/blockdev ]; then
64 msg_not_running blockdev
66 rm -f /var/lock/subsys/blockdev
70 # See how we were called.
83 if [ "$blockdevs" ]; then
84 echo "blockdev configured for:"
85 for var in $blockdevs; do
86 drive=${var#BLOCKDEV_}
90 if [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
91 realdrive="/dev/${drive}"
92 elif [ -e "/dev/mapper/${drive}" ]; then
93 realdrive="/dev/mapper/${drive}"
94 elif drive=$(echo $drive | tr _ -) && [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
95 realdrive="/dev/${drive}"
96 elif [ -e "/dev/mapper/${drive}" ]; then
97 realdrive="/dev/mapper/${drive}"
101 if [ -n "$realdrive" ]; then
102 echo "${PARAMS}; device=$realdrive"
104 echo "${PARAMS}; device not present"
109 echo "no devices configured for blockdev"
113 msg_usage "$0 {start|stop|restart|force-reload|status}"