diff options
Diffstat (limited to 'rc.d/init.d/rawdevices')
-rwxr-xr-x | rc.d/init.d/rawdevices | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/rc.d/init.d/rawdevices b/rc.d/init.d/rawdevices new file mode 100755 index 00000000..67954d17 --- /dev/null +++ b/rc.d/init.d/rawdevices @@ -0,0 +1,80 @@ +#!/bin/bash +# +# rawdevices This shell script assignes rawdevices to block devices +# +# chkconfig: 345 56 44 +# description: This scripts assignes raw devices to block devices \ +# (such as hard drive partitions). This is for the use \ +# of applications such as Oracle. You can set up the \ +# raw device to block device mapping by editing \ +# the file /etc/sysconfig/rawdevices. Note that the use \ +# of raw devices is deprecated, and applications should \ +# open regular block devices with O_DIRECT instead. +# +# config: /etc/sysconfig/rawdevices + +[ -f /usr/bin/raw ] || exit 0 +[ -f /etc/sysconfig/rawdevices ] || exit 0 +# Exit if the file just has the default comments. +LC_ALL=C /bin/egrep -q -v "^ *#" /etc/sysconfig/rawdevices 2>/dev/null || exit 0 + +. /etc/init.d/functions + +function assign_raw() +{ + LC_ALL=C egrep -v '^ *#' /etc/sysconfig/rawdevices | + while read RAW BLOCK; do + if [ -n "$RAW" -a -n "$BLOCK" ]; then + rawdirname=${RAW%/*} + if [ "$rawdirname" = "/dev" -a -d /dev/raw ]; then + echo $" Please correct your /etc/sysconfig/rawdevices:" + echo $" rawdevices are now located in the directory /dev/raw/ " + echo $" If the command 'raw' still refers to /dev/raw as a file." + echo $" you'll have to upgrade your util-linux package" + exit 0 + fi + if [ "$rawdirname" = "/dev/raw" -a -f /dev/raw ]; then + echo $" Please correct your /etc/sysconfig/rawdevices:" + echo $" rawdevices are now located in the directory /dev/raw/ " + echo $" If the command 'raw' still refers to /dev/raw as a file." + echo $" you'll have to upgrade your util-linux package" + exit 0 + fi + + echo " $RAW --> $BLOCK"; + raw $RAW $BLOCK + fi + done +} + +# See how we were called. +case "$1" in + start) + # Assign devices + echo $"Assigning devices: " + assign_raw + echo $"done" + ;; + stop) + # No action to be taken here + ;; + + status) + ID=`id -u` + if [ $ID -eq 0 ]; then + raw -qa + else + echo $"You need to be root to use this command ! " + fi + ;; + + restart|reload) + $0 start + ;; + + *) + echo $"Usage: $0 {start|stop|status|restart}" + exit 1 +esac + +exit 0 |