]> git.pld-linux.org Git - packages/util-linux.git/blame_incremental - util-linux-blockdev.init
- optimize in a way that nothing is done if config is empty
[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# 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
18start() {
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
50stop() {
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
58RETVAL=0
59# See how we were called.
60case "$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
78esac
79
80exit $RETVAL
This page took 0.020533 seconds and 4 git commands to generate.