]> git.pld-linux.org Git - packages/util-linux.git/blob - util-linux-blockdev.init
- optimize in a way that nothing is done if config is empty
[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 # Source function library.
13 . /etc/rc.d/init.d/functions
14
15 # Source blockdev configureation.
16 [ -f /etc/sysconfig/blockdev ] && . /etc/sysconfig/blockdev
17
18 start() {
19         if [ ! -f /var/lock/subsys/blockdev ]; then
20                 for var in $(awk -F= '!/^#/ && !/^$/ {if ($2) print $1}' /etc/sysconfig/blockdev); do
21                         realdrive=
22                         drive=${var#BLOCKDEV_}
23                         if [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
24                                 realdrive="/dev/${drive}"
25                         elif [ -e "/dev/mapper/${drive}" ]; then
26                                 realdrive="/dev/mapper/${drive}"
27                         elif drive=$(echo $drive | tr _ -) && [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
28                                 realdrive="/dev/${drive}"
29                         elif [ -e "/dev/mapper/${drive}" ]; then
30                                 realdrive="/dev/mapper/${drive}"
31                         fi
32
33                         if [ -n "$realdrive" ]; then
34                                 eval PARAMS=\$$var
35                                 if [ -n "${PARAMS}" ]; then
36                                         show "Setting parameters for block drive %s (%s)" "$drive" "$PARAMS"
37                                         busy
38                                         /sbin/blockdev ${PARAMS} $realdrive
39                                         ok
40                                 fi
41                         fi
42                 done
43                 RETVAL=$?
44                 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/blockdev
45         else
46                 msg_already_running blockdev
47         fi
48 }
49
50 stop() {
51         # Stop daemons.
52         if [ ! -f /var/lock/subsys/blockdev ]; then
53                 msg_not_running blockdev
54         fi
55         rm -f /var/lock/subsys/blockdev
56 }
57
58 RETVAL=0
59 # See how we were called.
60 case "$1" in
61   start)
62         start
63         ;;
64   stop)
65         stop
66         ;;
67   restart|force-reload)
68         stop
69         start
70         ;;
71   status)
72         status blockdev
73         exit $?
74         ;;
75   *)
76         msg_usage "$0 {start|stop|restart|force-reload|status}"
77         exit 3
78 esac
79
80 exit $RETVAL
This page took 0.029061 seconds and 3 git commands to generate.