1ae9fb391f
- Added 'condstop' to init scripts so service are not started when nfs-utils is removed.
121 lines
2.4 KiB
Bash
Executable File
121 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# rpcgssd Start up and shut down RPCSEC GSS daemon
|
|
#
|
|
# Authors: Chuck Lever <cel@netapp.com>
|
|
#
|
|
# chkconfig: 345 19 85
|
|
# description: Starts user-level daemon that manages RPCSEC GSS contexts \
|
|
# for the NFSv4 client.
|
|
|
|
# Source function library.
|
|
. /etc/init.d/functions
|
|
|
|
# Source networking configuration.
|
|
if [ ! -f /etc/sysconfig/network ]; then
|
|
exit 6
|
|
fi
|
|
. /etc/sysconfig/network
|
|
|
|
# Check that networking is up.
|
|
[ "${NETWORKING}" = "no" ] && exit 6
|
|
|
|
[ ! -x /usr/sbin/rpc.gssd ] && exit 5
|
|
|
|
# Check for and source configuration file otherwise set defaults
|
|
[ -f /etc/sysconfig/nfs ] && . /etc/sysconfig/nfs
|
|
[ "${SECURE_NFS}" != "yes" ] && exit 6
|
|
|
|
# List of kernel modules to load
|
|
[ -z "${SECURE_NFS_MODS}" ] && SECURE_NFS_MODS="des rpcsec_gss_krb5"
|
|
|
|
|
|
# Try to use machine credentials by default
|
|
RETVAL=0
|
|
LOCKFILE=/var/lock/subsys/rpcgssd
|
|
prog="rpc.gssd"
|
|
|
|
case "$1" in
|
|
start|condstart)
|
|
# Make sure the daemon is not already running.
|
|
if status $prog > /dev/null ; then
|
|
exit 0
|
|
fi
|
|
rm -f $LOCKFILE
|
|
|
|
echo -n $"Starting RPC gssd: "
|
|
|
|
# Make sure the rpc_pipefs filesystem is available
|
|
[ "${RPCMTAB}" != "noload" ] && {
|
|
RPCMTAB=`grep -v '^#' /proc/mounts | \
|
|
awk '{ if ($3 ~ /^rpc_pipefs$/ ) print $2}'`
|
|
[ -z "${RPCMTAB}" ] && {
|
|
[ -x /sbin/lsmod -a -x /sbin/modprobe ] && {
|
|
if ! /sbin/lsmod | grep sunrpc > /dev/null ; then
|
|
/sbin/modprobe sunrpc
|
|
fi
|
|
}
|
|
RPCMTAB=`grep -v '^#' /proc/mounts | \
|
|
awk '{ if ($3 ~ /^rpc_pipefs$/ ) print $2}'`
|
|
[ -z "${RPCMTAB}" ] && { \
|
|
echo "Error: RPC MTAB does not exist."
|
|
exit 6
|
|
}
|
|
}
|
|
}
|
|
[ "${SECURE_NFS_MODS}" != "noload" ] && {
|
|
[ -x /sbin/lsmod -a -x /sbin/modprobe ] && {
|
|
for i in ${SECURE_NFS_MODS}; do
|
|
if ! /sbin/lsmod | grep $i > /dev/null ; then
|
|
/sbin/modprobe $i || {
|
|
echo "Error: Unable to load '$i' security module."
|
|
exit 6;
|
|
}
|
|
fi
|
|
done
|
|
}
|
|
}
|
|
|
|
# Start daemon.
|
|
daemon $prog ${RPCGSSDARGS}
|
|
RETVAL=$?
|
|
echo
|
|
[ $RETVAL -eq 0 ] && touch $LOCKFILE
|
|
;;
|
|
stop)
|
|
# Stop daemon.
|
|
echo -n $"Stopping RPC gssd: "
|
|
killproc $prog
|
|
RETVAL=$?
|
|
echo
|
|
rm -f $LOCKFILE
|
|
;;
|
|
status)
|
|
status rpc.gssd
|
|
RETVAL=$?
|
|
;;
|
|
restart|reload)
|
|
$0 stop
|
|
$0 start
|
|
RETVAL=$?
|
|
;;
|
|
condrestart)
|
|
if [ -f $LOCKFILE ]; then
|
|
$0 restart
|
|
RETVAL=$?
|
|
fi
|
|
;;
|
|
condstop)
|
|
if [ -f $LOCKFILE ]; then
|
|
$0 stop
|
|
RETVAL=$?
|
|
fi
|
|
;;
|
|
*)
|
|
echo $"Usage: $0 {start|stop|restart|condstart|condrestart|status|condstop}"
|
|
RETVAL=3
|
|
;;
|
|
esac
|
|
|
|
exit $RETVAL
|