]> git.pld-linux.org Git - packages/util-linux.git/blame - util-linux-blockdev.init
- cosmetics
[packages/util-linux.git] / util-linux-blockdev.init
CommitLineData
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
14blockdevs=$(awk -F= '!/^#/ && !/^$/ {if ($2) print $1}' /etc/sysconfig/blockdev)
15if [ -z "$blockdevs" ]; then
16 case "$1" in
17 start|stop|restart|force-reload)
18 exit 0
19 ;;
20 esac
21fi
22
23# Source function library.
24. /etc/rc.d/init.d/functions
25
26# Source blockdev configuration.
27. /etc/sysconfig/blockdev
28
29start() {
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
64stop() {
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
ER
73status() {
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
f212f39a 106RETVAL=0
107# See how we were called.
108case "$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
125esac
126
127exit $RETVAL
This page took 0.090179 seconds and 4 git commands to generate.