]> git.pld-linux.org Git - packages/util-linux.git/blame_incremental - util-linux-blockdev.init
dir attribute for dirs
[packages/util-linux.git] / util-linux-blockdev.init
... / ...
CommitLineData
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
12blockdevs=$(awk -F= '!/^#/ && !/^$/ {if ($2) print $1}' /etc/sysconfig/blockdev)
13if [ -z "$blockdevs" ]; then
14 case "$1" in
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() {
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
62stop() {
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
71status() {
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
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)
118 status
119 ;;
120 *)
121 msg_usage "$0 {start|stop|restart|force-reload|status}"
122 exit 3
123esac
124
125exit $RETVAL
This page took 0.028382 seconds and 4 git commands to generate.