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