]>
Commit | Line | Data |
---|---|---|
71f3ad45 AM |
1 | #!/bin/sh |
2 | # | |
3 | # blockdev This shell script takes care of starting and stopping blockdev. | |
4 | # | |
5 | # chkconfig: 2345 01 99 | |
6 | # description: blockdev | |
b06f5046 | 7 | # |
71f3ad45 | 8 | # processname: blockdev |
b06f5046 | 9 | # config: |
71f3ad45 AM |
10 | # pidfile: |
11 | ||
a1c50302 | 12 | [ -f /etc/sysconfig/blockdev ] || exit 0 |
41f3c716 | 13 | |
a1c50302 | 14 | blockdevs=$(awk -F= '!/^#/ && !/^$/ {if ($2) print $1}' /etc/sysconfig/blockdev) |
41f3c716 ER |
15 | if [ -z "$blockdevs" ]; then |
16 | case "$1" in | |
17 | start|stop|restart|force-reload) | |
18 | exit 0 | |
19 | ;; | |
20 | esac | |
21 | fi | |
22 | ||
71f3ad45 AM |
23 | # Source function library. |
24 | . /etc/rc.d/init.d/functions | |
25 | ||
f25c7f03 | 26 | # Source blockdev configuration. |
41f3c716 | 27 | . /etc/sysconfig/blockdev |
71f3ad45 | 28 | |
a38c175f | 29 | start() { |
71f3ad45 | 30 | if [ ! -f /var/lock/subsys/blockdev ]; then |
41f3c716 | 31 | for var in $blockdevs; do |
72962280 ER |
32 | realdrive= |
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 | |
0f21c6c9 AM |
39 | realdrive="/dev/${drive}" |
40 | elif [ -e "/dev/mapper/${drive}" ]; then | |
41 | realdrive="/dev/mapper/${drive}" | |
42 | fi | |
72962280 | 43 | |
0f21c6c9 | 44 | if [ -n "$realdrive" ]; then |
72962280 | 45 | eval PARAMS=\$$var |
71f3ad45 AM |
46 | if [ -n "${PARAMS}" ]; then |
47 | show "Setting parameters for block drive %s (%s)" "$drive" "$PARAMS" | |
48 | busy | |
72962280 | 49 | /sbin/blockdev ${PARAMS} $realdrive |
71f3ad45 AM |
50 | ok |
51 | fi | |
52 | fi | |
53 | done | |
54 | RETVAL=$? | |
55 | [ $RETVAL -eq 0 ] && touch /var/lock/subsys/blockdev | |
56 | else | |
57 | msg_already_running blockdev | |
58 | fi | |
a38c175f ER |
59 | } |
60 | ||
61 | stop() { | |
71f3ad45 AM |
62 | # Stop daemons. |
63 | if [ ! -f /var/lock/subsys/blockdev ]; then | |
64 | msg_not_running blockdev | |
b06f5046 | 65 | fi |
b4e58e25 | 66 | rm -f /var/lock/subsys/blockdev |
a38c175f ER |
67 | } |
68 | ||
69 | RETVAL=0 | |
70 | # See how we were called. | |
71 | case "$1" in | |
72 | start) | |
73 | start | |
71f3ad45 | 74 | ;; |
a38c175f ER |
75 | stop) |
76 | stop | |
77 | ;; | |
78 | restart|force-reload) | |
79 | stop | |
80 | start | |
71f3ad45 | 81 | ;; |
a38c175f | 82 | status) |
554811e2 ER |
83 | if [ "$blockdevs" ]; then |
84 | echo "blockdev configured for:" | |
85 | for var in $blockdevs; do | |
86 | drive=${var#BLOCKDEV_} | |
87 | echo -n "- $drive: " | |
88 | ||
b172f17a | 89 | realdrive= |
554811e2 ER |
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}" | |
98 | fi | |
99 | ||
100 | eval PARAMS=\$$var | |
101 | if [ -n "$realdrive" ]; then | |
102 | echo "${PARAMS}; device=$realdrive" | |
103 | else | |
104 | echo "${PARAMS}; device not present" | |
105 | fi | |
106 | ||
107 | done | |
108 | else | |
109 | echo "no devices configured for blockdev" | |
110 | fi | |
71f3ad45 | 111 | ;; |
a38c175f | 112 | *) |
71f3ad45 AM |
113 | msg_usage "$0 {start|stop|restart|force-reload|status}" |
114 | exit 3 | |
115 | esac | |
116 | ||
117 | exit $RETVAL |