]> git.pld-linux.org Git - packages/util-linux.git/blame - util-linux-blockdev.init
fix wipefs not understanding -f option
[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
f212f39a 9
10[ -f /etc/sysconfig/blockdev ] || exit 0
11
12blockdevs=$(awk -F= '!/^#/ && !/^$/ {if ($2) print $1}' /etc/sysconfig/blockdev)
13if [ -z "$blockdevs" ]; then
da3bfa99 14 case "$1" in
f212f39a 15 start|stop|restart|force-reload)
16 exit 0
17 ;;
18 esac
19fi
20
21# Source function library.
22. /etc/rc.d/init.d/functions
23
24# Source blockdev configuration.
25. /etc/sysconfig/blockdev
26
27start() {
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
62stop() {
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 71status() {
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 104RETVAL=0
105# See how we were called.
106case "$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
123esac
124
125exit $RETVAL
This page took 0.043267 seconds and 4 git commands to generate.