]> git.pld-linux.org Git - packages/util-linux.git/blob - util-linux-blockdev.init
5806f4b60dd9daa2ab7815bb76903fc9f5a532a9
[packages/util-linux.git] / util-linux-blockdev.init
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
16         case "$1" in
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() {
30         if [ -f /var/lock/subsys/blockdev ]; then
31                 msg_already_running blockdev
32                 return
33         fi
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
62 }
63
64 stop() {
65         # Stop daemons.
66         if [ ! -f /var/lock/subsys/blockdev ]; then
67                 msg_not_running blockdev
68                 return
69         fi
70         rm -f /var/lock/subsys/blockdev
71 }
72
73 status() {
74         if [ -z "$blockdevs" ]; then
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
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)
120         status
121         ;;
122   *)
123         msg_usage "$0 {start|stop|restart|force-reload|status}"
124         exit 3
125 esac
126
127 exit $RETVAL
This page took 0.134916 seconds and 3 git commands to generate.