]>
Commit | Line | Data |
---|---|---|
f212f39a | 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 | |
7 | # | |
8 | # processname: blockdev | |
9 | # config: | |
10 | # pidfile: | |
11 | ||
12 | [ -f /etc/sysconfig/blockdev ] || exit 0 | |
13 | ||
14 | blockdevs=$(awk -F= '!/^#/ && !/^$/ {if ($2) print $1}' /etc/sysconfig/blockdev) | |
15 | if [ -z "$blockdevs" ]; then | |
da3bfa99 | 16 | case "$1" in |
f212f39a | 17 | start|stop|restart|force-reload) |
18 | exit 0 | |
19 | ;; | |
20 | esac | |
21 | fi | |
22 | ||
23 | # Source function library. | |
24 | . /etc/rc.d/init.d/functions | |
25 | ||
26 | # Source blockdev configuration. | |
27 | . /etc/sysconfig/blockdev | |
28 | ||
29 | start() { | |
fc12bec5 | 30 | if [ -f /var/lock/subsys/blockdev ]; then |
f212f39a | 31 | msg_already_running blockdev |
fc12bec5 | 32 | return |
f212f39a | 33 | fi |
fc12bec5 ER |
34 | |
35 | local var realdrive drive PARAMS | |
36 | for var in $blockdevs; do | |
37 | realdrive= | |
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}" | |
47 | fi | |
48 | ||
49 | if [ -n "$realdrive" ]; then | |
50 | eval PARAMS=\$$var | |
51 | if [ -n "${PARAMS}" ]; then | |
52 | show "Setting parameters for block drive %s (%s)" "$drive" "$PARAMS" | |
53 | busy | |
54 | /sbin/blockdev ${PARAMS} $realdrive | |
55 | ok | |
56 | fi | |
57 | fi | |
58 | done | |
59 | # TODO: retval not really handled here | |
60 | RETVAL=$? | |
61 | [ $RETVAL -eq 0 ] && touch /var/lock/subsys/blockdev | |
f212f39a | 62 | } |
63 | ||
64 | stop() { | |
65 | # Stop daemons. | |
66 | if [ ! -f /var/lock/subsys/blockdev ]; then | |
67 | msg_not_running blockdev | |
fc12bec5 | 68 | return |
f212f39a | 69 | fi |
70 | rm -f /var/lock/subsys/blockdev | |
71 | } | |
72 | ||
fc12bec5 | 73 | status() { |
da3bfa99 | 74 | if [ -z "$blockdevs" ]; then |
fc12bec5 ER |
75 | echo "no devices configured for blockdev" |
76 | RETVAL=1 | |
77 | return | |
78 | fi | |
79 | ||
80 | echo "blockdev configured for:" | |
81 | local var drive realdrive PARAMS | |
82 | for var in $blockdevs; do | |
83 | drive=${var#BLOCKDEV_} | |
84 | echo -n "- $drive: " | |
85 | ||
86 | realdrive= | |
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}" | |
95 | fi | |
96 | ||
97 | eval PARAMS=\$$var | |
98 | if [ -n "$realdrive" ]; then | |
99 | echo "${PARAMS}; device=$realdrive" | |
100 | else | |
101 | echo "${PARAMS}; device not present" | |
102 | fi | |
103 | done | |
104 | } | |
105 | ||
f212f39a | 106 | RETVAL=0 |
107 | # See how we were called. | |
108 | case "$1" in | |
109 | start) | |
110 | start | |
111 | ;; | |
112 | stop) | |
113 | stop | |
114 | ;; | |
115 | restart|force-reload) | |
116 | stop | |
117 | start | |
118 | ;; | |
119 | status) | |
fc12bec5 | 120 | status |
f212f39a | 121 | ;; |
122 | *) | |
123 | msg_usage "$0 {start|stop|restart|force-reload|status}" | |
124 | exit 3 | |
125 | esac | |
126 | ||
127 | exit $RETVAL |