summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Zoffoli <xmerlin@gentoo.org>2005-03-25 02:17:29 +0000
committerChristian Zoffoli <xmerlin@gentoo.org>2005-03-25 02:17:29 +0000
commitdc6ee26cc87e598648407f86b8600f4f2c2c8375 (patch)
tree615ae31fa51aac824c6a740d96776e11770e44ef /sys-cluster/gnbd
parentAdded spanish description to the category metadata (diff)
downloadhistorical-dc6ee26cc87e598648407f86b8600f4f2c2c8375.tar.gz
historical-dc6ee26cc87e598648407f86b8600f4f2c2c8375.tar.bz2
historical-dc6ee26cc87e598648407f86b8600f4f2c2c8375.zip
improved init script
Package-Manager: portage-2.0.51.19
Diffstat (limited to 'sys-cluster/gnbd')
-rw-r--r--sys-cluster/gnbd/ChangeLog6
-rwxr-xr-xsys-cluster/gnbd/files/gnbd-client.rc44
-rwxr-xr-xsys-cluster/gnbd/files/gnbd-srv.rc2
3 files changed, 37 insertions, 15 deletions
diff --git a/sys-cluster/gnbd/ChangeLog b/sys-cluster/gnbd/ChangeLog
index e7d6c79e95d2..300f80274c77 100644
--- a/sys-cluster/gnbd/ChangeLog
+++ b/sys-cluster/gnbd/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for sys-cluster/gnbd
# Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-cluster/gnbd/ChangeLog,v 1.3 2005/03/23 14:40:35 xmerlin Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/gnbd/ChangeLog,v 1.4 2005/03/25 02:17:29 xmerlin Exp $
+
+ 25 Mar 2005; Christian Zoffoli <xmerlin@gentoo.org> files/gnbd-client.rc,
+ files/gnbd-srv.rc:
+ improved init script
23 Mar 2005; Christian Zoffoli <xmerlin@gentoo.org> files/gnbd-client.rc:
added gfs filesystems (imported GNBSs) umount in init
diff --git a/sys-cluster/gnbd/files/gnbd-client.rc b/sys-cluster/gnbd/files/gnbd-client.rc
index 6af0a4463a46..042c0fefa606 100755
--- a/sys-cluster/gnbd/files/gnbd-client.rc
+++ b/sys-cluster/gnbd/files/gnbd-client.rc
@@ -1,7 +1,7 @@
#!/sbin/runscript
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
-# $Header: /var/cvsroot/gentoo-x86/sys-cluster/gnbd/files/gnbd-client.rc,v 1.3 2005/03/23 14:40:35 xmerlin Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/gnbd/files/gnbd-client.rc,v 1.4 2005/03/25 02:17:29 xmerlin Exp $
depend() {
use dns logger
@@ -9,6 +9,29 @@ depend() {
need fenced
}
+load_modules() {
+ local module modules
+ modules=$1
+
+ for module in ${modules}; do
+ ebegin "Loading ${module} kernel module"
+ modprobe ${module}
+ eend $? "Failed to load ${module} kernel module"
+ done
+}
+
+unload_modules() {
+ local module modules
+ modules=$1
+
+ for module in ${modules}; do
+ ebegin "Unloading ${module} kernel module"
+ modprobe -r ${module}
+ eend $? "Failed to unload ${module} kernel module"
+ done
+}
+
+
start() {
if [ ! -f /etc/gnbdtab ] ; then
eerror "Please create /etc/gnbdtab"
@@ -16,9 +39,7 @@ start() {
return 1
fi
- ebegin "Loading needed kernel modules for gnbd"
- modprobe gnbd
- eend $? "Failed to load needed kernel modules for gnbd"
+ load_modules gnbd
GNBD=`cat /etc/gnbdtab | egrep '^import'`
if [ -n "$GNBD" ] ; then
@@ -31,12 +52,13 @@ start() {
stop() {
+ # umount manually mounted gfs filesystems
local sig retry
- local remaining="$(awk '$3 ~ /gfs/ { if ($2 != "/") print $2 }' /proc/mounts | sort -r)"
+ local remaining="$(awk '$3 ~ /gfs/ && $1 ~ /\/dev\/gnbd\// { if ($2 != "/") print $2 }' /proc/mounts | sort -r)"
if [ -z "${remaining}" ]
then
- ebegin "Unmounting GFS filesystems"
+ ebegin "Unmounting GFS filesystems (GNBDs imported devices)"
eend 0
else
sig=
@@ -53,7 +75,7 @@ stop() {
umount ${remaining} &>/dev/null
eend $? "Failed to unmount GFS filesystems"
fi
- remaining="$(awk '$3 ~ /gfs/ { if ($2 != "/") print $2 }' /proc/mounts | sort -r)"
+ remaining="$(awk '$3 ~ /gfs/ && $1 ~ /\/dev\/gnbd\// { if ($2 != "/") print $2 }' /proc/mounts | sort -r)"
[ -z "${remaining}" ] && break
/bin/fuser -k -m ${sig} ${remaining} &>/dev/null
sleep 5
@@ -62,8 +84,6 @@ stop() {
done
fi
-
-
local GNBD_MONITOR_PROC
ebegin "Unimporting all GNBDs devices"
@@ -76,8 +96,6 @@ stop() {
killall gnbd_monitor &> /dev/null
eend $?
fi
-
- ebegin "Unloading gnbd kernel module"
- modprobe -r gnbd
- eend $? "Failed to unload gnbd kernel module"
+
+ unload_modules gnbd
}
diff --git a/sys-cluster/gnbd/files/gnbd-srv.rc b/sys-cluster/gnbd/files/gnbd-srv.rc
index 9c0b9d074312..f5dbfff356b9 100755
--- a/sys-cluster/gnbd/files/gnbd-srv.rc
+++ b/sys-cluster/gnbd/files/gnbd-srv.rc
@@ -1,7 +1,7 @@
#!/sbin/runscript
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
-# $Header: /var/cvsroot/gentoo-x86/sys-cluster/gnbd/files/gnbd-srv.rc,v 1.2 2005/03/23 02:50:37 xmerlin Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/gnbd/files/gnbd-srv.rc,v 1.3 2005/03/25 02:17:29 xmerlin Exp $
depend() {
use dns logger