summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Brueckner <darks@gentoo.org>2001-10-12 11:16:26 +0000
committerHolger Brueckner <darks@gentoo.org>2001-10-12 11:16:26 +0000
commit449d3c7dfe948e485fe104f194a560b40e0f9fcc (patch)
tree24bb9003689c6d03385f9338152927adf439dbcc /net-fs/openafs
parentupdated to latest available version (diff)
downloadgentoo-2-449d3c7dfe948e485fe104f194a560b40e0f9fcc.tar.gz
gentoo-2-449d3c7dfe948e485fe104f194a560b40e0f9fcc.tar.bz2
gentoo-2-449d3c7dfe948e485fe104f194a560b40e0f9fcc.zip
hmpf .. forgot the init script
Diffstat (limited to 'net-fs/openafs')
-rw-r--r--net-fs/openafs/files/afs.rc.rc6220
1 files changed, 220 insertions, 0 deletions
diff --git a/net-fs/openafs/files/afs.rc.rc6 b/net-fs/openafs/files/afs.rc.rc6
new file mode 100644
index 000000000000..cea7ec992505
--- /dev/null
+++ b/net-fs/openafs/files/afs.rc.rc6
@@ -0,0 +1,220 @@
+#! /sbin/runscript
+#RCUPDATE:3 4:77:This line is required for script management
+
+# Copyright 2000, International Business Machines Corporation and others.
+# All Rights Reserved.
+#
+# This software has been released under the terms of the IBM Public
+# License. For details, see the LICENSE file in the top-level source
+# directory or online at http://www.openafs.org/dl/license10.html
+
+# AFS Start and stop AFS components
+#
+#
+# chkconfig: 345 60 20
+# description: AFS is a distributed file system which provides location
+# transparency, caching and secure authentication.
+# Additional configuration can be done in the /etc/sysconfig/afs
+# file. Read the documentation in that file for more information.
+#
+# Note that AFS does not use a pid file in /var/run. It is turned off by
+# unmounting /afs.
+#
+# Modified by Holger Brueckner <darks@fet.org> for gentoo-linux
+
+# Gather up options and post startup script name, if present
+if [ -f /etc/afs/afs.conf ]; then
+ . /etc/afs/afs.conf
+fi
+
+
+# dependecies
+depend() {
+ need net
+}
+
+# check for ext2 partition
+
+check_ext2() {
+ PART=`cat /proc/mounts | grep vice | grep ext2 | awk '{print $1}'`
+ if [ -z $PART ]
+ then
+ echo ">>> PLEASE CREATE A EXT2 (no reiserfs) PARTITION (of aprox. 200M)"
+ echo ">>> AND MOUNT IT TO /USR/VICE/CACHE !!!"
+ exit 1
+ fi
+}
+
+# check if cacheinfo exist, otherwise create it !!
+
+check_cacheinfo(){
+ [ ! -f /usr/vice/etc/cacheinfo ] && {
+ PART=`cat /proc/mounts | grep vice | grep ext2 | awk '{print $1}'`
+ CACHESIZE=`df $PART | grep ^/ | awk '{print $4}'`
+ CACHESIZE=`expr $CACHESIZE \* 9`
+ CACHESIZE=`expr $CACHESIZE / 10`
+ echo "/afs:/usr/vice/cache:$CACHESIZE" > /usr/vice/etc/cacheinfo
+ }
+}
+
+# is_on returns 1 if value of arg is "on"
+is_on() {
+ if test "$1" = "on" ; then return 0
+ else return 1
+ fi
+}
+
+# If choose_client can't correctly determine which client to use, set
+# LIBAFS manually.
+choose_client() {
+
+ # Use the second field of the uname -v output instead of just
+ # doing a match on the whole thing to protect against matching
+ # a timezone named SMP -- I don't know of one, but let's be
+ # paranoid.
+
+ set X `uname -v`; shift
+ case $2 in
+ SMP) MP=.mp ;; # MP system
+ *) MP= ;; # SP system
+ esac
+
+ # For now, just use uname -r to get the module version.
+ VERSION=`uname -r`
+
+ LIBAFS=libafs-$VERSION$MP.o
+}
+
+#
+# Find prefix symbol to use with insmod. We find the unregister_filesystem
+# string from /proc/ksyms since we know it's there. If /proc/ksyms does not
+# exist, we print that info to the console and use the uname -v output to
+# decide on a prefix.
+# unregister_filesystem_Rsmp_b240cad8 is a typcial SMP version string from
+# a kernel built from ftp.kernel.org
+#
+
+KSYMS_FILE=/proc/ksyms
+SEARCH_STR="unregister_filesystem"
+DEFAULT_SMP_PREFIX="smp_" # Redhat kernels need "smp" instead
+PREFIX="" # none needed for UP with <= 1Gig memory
+
+set_prefix()
+{
+ h='[0-9a-fA-F]'
+ h8="$h$h$h$h$h$h$h$h"
+ prefix_set=0
+
+ set X `fgrep $SEARCH_STR $KSYMS_FILE 2> /dev/null`; shift
+ str=$2
+ case $str in
+ ${SEARCH_STR}_R$h8)
+ # No prefix required
+ ;;
+ $SEARCH_STR)
+ # No versioning in kernel symbols
+ ;;
+ ${SEARCH_STR}_R*$h8)
+ suffix=${str#${SEARCH_STR}_R}
+ PREFIX=${suffix%$h8}
+ ;;
+ *)
+ case $str in
+ '')
+ echo afsd: Cannot find \"$SEARCH_STR\" in file $KSYMS_FILE
+ ;;
+ *)
+ echo afsd: Malformed kernel version symbol \"$str\"
+ ;;
+ esac
+
+ echo Guessing prefix from output of uname -v
+ set X `uname -v`; shift
+ case $2 in
+ SMP)
+ PREFIX=$DEFAULT_SMP_PREFIX
+ ;;
+ esac
+ ;;
+ esac
+}
+
+
+MODLOADDIR=/usr/vice/etc/modload
+# load_client loads the AFS client module if it's not already loaded.
+load_client() {
+ # If LIBAFS is set, use it.
+ if [ -z "$LIBAFS" ] ; then
+ # Try to determine the right client.
+ choose_client
+ fi
+
+ if [ ! -f $MODLOADDIR/$LIBAFS ] ; then
+ echo AFS module $MODLOADDIR/$LIBAFS does not exist. Not starting AFS.
+ exit 1
+ fi
+
+ # use the prefix command if required
+ set_prefix
+ /sbin/insmod ${PREFIX:+-P $PREFIX} -f -m $MODLOADDIR/$LIBAFS > $MODLOADDIR/libafs.map 2>&1
+}
+
+start(){
+ # Load kernel extensions
+
+ check_ext2
+ check_cacheinfo
+
+ ebegin "Starting AFS services"
+
+ if load_client ; then :
+ else
+ echo Failed to load AFS client, not starting AFS services.
+ eend 1 "Error Starting AFS client"
+ fi
+
+ # Start bosserver, it if exists
+ if is_on $AFS_SERVER && test -x /usr/afs/bin/bosserver ; then
+ /usr/afs/bin/bosserver
+ fi
+
+ # Start AFS client
+ if is_on $AFS_CLIENT && test -x /usr/sbin/afsd ; then
+ /usr/sbin/afsd ${OPTIONS} 1>&2
+ STATUS=$?
+ # Start AFS version of inetd.conf if present.
+ if test -f /usr/afsws/etc/inetd.conf -a -x /usr/afsws/etc/inetd.afs ; then
+ /usr/afsws/etc/inetd.afs /usr/afsws/etc/inetd.conf
+ fi
+ $AFS_POST_INIT
+ fi
+ eend $STATUS "Error starting AFS"
+
+}
+
+stop() {
+ # Stop AFS
+ ebegin "Stopping AFS services"
+
+ if is_on $AFS_CLIENT ; then
+# killall inetd.afs
+ umount /afs
+ STATUS=$?
+ fi
+
+ if is_on $AFS_SERVER && test -x /usr/afs/bin/bos ; then
+ echo "Stopping AFS bosserver"
+ /usr/afs/bin/bos shutdown localhost -localauth -wait
+ killall -HUP bosserver
+ fi
+
+ LIBAFS=`/sbin/lsmod | fgrep libafs`
+ if [ -n "$LIBAFS" ] ; then
+ LIBAFS=`echo $LIBAFS | awk 'BEGIN { FS = " " } { print $1 }'`
+ /sbin/rmmod $LIBAFS
+ STATUS=$?
+ fi
+ eend $STATUS "Error starting AFS"
+
+}
+