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 msg_already_running blockdev
35 local var realdrive drive PARAMS
36 for var in $blockdevs; do
38 drive=${var#BLOCKDEV_}
39 if [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
40 realdrive="/dev/${drive}"
41 elif [ -e "/dev/mapper/${drive}" ]; then
42 realdrive="/dev/mapper/${drive}"
43 elif drive=$(echo $drive | tr _ -) && [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
44 realdrive="/dev/${drive}"
45 elif [ -e "/dev/mapper/${drive}" ]; then
46 realdrive="/dev/mapper/${drive}"
49 if [ -n "$realdrive" ]; then
51 if [ -n "${PARAMS}" ]; then
52 show "Setting parameters for block drive %s (%s)" "$drive" "$PARAMS"
54 /sbin/blockdev ${PARAMS} $realdrive
59 # TODO: retval not really handled here
61 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/blockdev
66 if [ ! -f /var/lock/subsys/blockdev ]; then
67 msg_not_running blockdev
70 rm -f /var/lock/subsys/blockdev
74 if [ -z "$blockdevs" ]; then
75 echo "no devices configured for blockdev"
80 echo "blockdev configured for:"
81 local var drive realdrive PARAMS
82 for var in $blockdevs; do
83 drive=${var#BLOCKDEV_}
87 if [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
88 realdrive="/dev/${drive}"
89 elif [ -e "/dev/mapper/${drive}" ]; then
90 realdrive="/dev/mapper/${drive}"
91 elif drive=$(echo $drive | tr _ -) && [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
92 realdrive="/dev/${drive}"
93 elif [ -e "/dev/mapper/${drive}" ]; then
94 realdrive="/dev/mapper/${drive}"
98 if [ -n "$realdrive" ]; then
99 echo "${PARAMS}; device=$realdrive"
101 echo "${PARAMS}; device not present"
107 # See how we were called.
115 restart|force-reload)
123 msg_usage "$0 {start|stop|restart|force-reload|status}"