3 # blockdev This shell script takes care of starting and stopping blockdev.
5 # chkconfig: 2345 01 99
6 # description: blockdev
8 # processname: blockdev
10 [ -f /etc/sysconfig/blockdev ] || exit 0
12 blockdevs=$(awk -F= '!/^#/ && !/^$/ {if ($2) print $1}' /etc/sysconfig/blockdev)
13 if [ -z "$blockdevs" ]; then
15 start|stop|restart|force-reload)
21 # Source function library.
22 . /etc/rc.d/init.d/functions
24 # Source blockdev configuration.
25 . /etc/sysconfig/blockdev
28 if [ -f /var/lock/subsys/blockdev ]; then
29 msg_already_running blockdev
33 local var realdrive drive PARAMS
34 for var in $blockdevs; do
36 drive=${var#BLOCKDEV_}
37 if [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
38 realdrive="/dev/${drive}"
39 elif [ -e "/dev/mapper/${drive}" ]; then
40 realdrive="/dev/mapper/${drive}"
41 elif drive=$(echo $drive | tr _ -) && [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
42 realdrive="/dev/${drive}"
43 elif [ -e "/dev/mapper/${drive}" ]; then
44 realdrive="/dev/mapper/${drive}"
47 if [ -n "$realdrive" ]; then
49 if [ -n "${PARAMS}" ]; then
50 show "Setting parameters for block drive %s (%s)" "$drive" "$PARAMS"
52 /sbin/blockdev ${PARAMS} $realdrive
57 # TODO: retval not really handled here
59 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/blockdev
64 if [ ! -f /var/lock/subsys/blockdev ]; then
65 msg_not_running blockdev
68 rm -f /var/lock/subsys/blockdev
72 if [ -z "$blockdevs" ]; then
73 echo "no devices configured for blockdev"
78 echo "blockdev configured for:"
79 local var drive realdrive PARAMS
80 for var in $blockdevs; do
81 drive=${var#BLOCKDEV_}
85 if [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
86 realdrive="/dev/${drive}"
87 elif [ -e "/dev/mapper/${drive}" ]; then
88 realdrive="/dev/mapper/${drive}"
89 elif drive=$(echo $drive | tr _ -) && [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
90 realdrive="/dev/${drive}"
91 elif [ -e "/dev/mapper/${drive}" ]; then
92 realdrive="/dev/mapper/${drive}"
96 if [ -n "$realdrive" ]; then
97 echo "${PARAMS}; device=$realdrive"
99 echo "${PARAMS}; device not present"
105 # See how we were called.
113 restart|force-reload)
121 msg_usage "$0 {start|stop|restart|force-reload|status}"