]> git.pld-linux.org Git - packages/util-linux.git/blob - util-linux-blockdev.init
dir attribute for dirs
[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
10 [ -f /etc/sysconfig/blockdev ] || exit 0
11
12 blockdevs=$(awk -F= '!/^#/ && !/^$/ {if ($2) print $1}' /etc/sysconfig/blockdev)
13 if [ -z "$blockdevs" ]; then
14         case "$1" in
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() {
28         if [ -f /var/lock/subsys/blockdev ]; then
29                 msg_already_running blockdev
30                 return
31         fi
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
60 }
61
62 stop() {
63         # Stop daemons.
64         if [ ! -f /var/lock/subsys/blockdev ]; then
65                 msg_not_running blockdev
66                 return
67         fi
68         rm -f /var/lock/subsys/blockdev
69 }
70
71 status() {
72         if [ -z "$blockdevs" ]; then
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
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)
118         status
119         ;;
120   *)
121         msg_usage "$0 {start|stop|restart|force-reload|status}"
122         exit 3
123 esac
124
125 exit $RETVAL
This page took 0.060593 seconds and 3 git commands to generate.