cvsdist 9e6d913
#!/bin/bash
cvsdist 9e6d913
#
cvsdist 9e6d913
# rpcsvcgssd    Start up and shut down RPCSEC GSS daemon
cvsdist 9e6d913
#
5b1bacb
# chkconfig: - 31 69
cvsdist 9e6d913
# description: Starts user-level daemon that manages RPCSEC GSS contexts \
0ce3b8d
#	       for the NFS server.
0ce3b8d
0ce3b8d
### BEGIN INIT INFO
0ce3b8d
# Provides: rpcsvcgssd
0ce3b8d
# Required-Start: $network $syslog
0ce3b8d
# Required-Stop: $network $syslog
0ce3b8d
# Default-Stop: 0 1 6
0ce3b8d
# Short-Description: Starts the RPCSEC GSS server daemon
0ce3b8d
# Description: NFS is a popular protocol for file sharing across \
0ce3b8d
#          networks. This deamon manages RPCSEC GSS contexts on the
0ce3b8d
#          server used by secure NFS mounts
0ce3b8d
### END INIT INFO
cvsdist 9e6d913
cvsdist 9e6d913
# Source function library.
cvsdist 9e6d913
. /etc/init.d/functions
cvsdist 9e6d913
cvsdist 9e6d913
# Source networking configuration.
adb2afe
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
cvsdist 9e6d913
cvsdist 9e6d913
# Check for and source configuration file otherwise set defaults
cvsdist 9e6d913
[ -f /etc/sysconfig/nfs ] && . /etc/sysconfig/nfs
cvsdist 9e6d913
cvsdist 9e6d913
RETVAL=0
cvsdist 9e6d913
prog="rpc.svcgssd"
0fb3f74
LOCKFILE=/var/lock/subsys/$prog
0fb3f74
uid=`id | cut -d\( -f1 | cut -d= -f2`
cvsdist 9e6d913
cvsdist 9e6d913
case "$1" in
cvsdist 9e6d913
  start|condstart)
adb2afe
	# Check that networking is up.
adb2afe
	[ "${NETWORKING}" != "yes" ] && exit 6
adb2afe
	[ "${SECURE_NFS}" != "yes" ] && exit 6
adb2afe
	[ ! -x /usr/sbin/rpc.svcgssd ] && exit 5
0fb3f74
	# Only root can start the service
0fb3f74
	[ $uid -ne 0 ] && exit 4
adb2afe
cvsdist 9e6d913
	# Make sure the daemon is not already running.
cvsdist 9e6d913
	if status $prog > /dev/null ; then
cvsdist 9e6d913
		exit 0
cvsdist 9e6d913
	fi
ba86d89
	rm -f $LOCKFILE
cvsdist 9e6d913
3f418c2
	echo -n $"Starting RPC svcgssd: "
adb2afe
cafae3a
	# Make sure the rpc_pipefs filesystem is available
3be559d
	/bin/mount -t rpc_pipefs sunrpc /var/lib/nfs/rpc_pipefs > /dev/null 2>&1
3be559d
J. Bruce Fields 27dead4
	[ -x /sbin/lsmod -a -x /sbin/modprobe ] && {
J. Bruce Fields 27dead4
		if ! /sbin/lsmod | grep rpcsec_gss_krb5 > /dev/null ;  then
J. Bruce Fields 27dead4
			/sbin/modprobe rpcsec_gss_krb5 || {
J. Bruce Fields 27dead4
				echo "Error: Unable to load rpcsec_gss_krb5."
J. Bruce Fields 27dead4
				exit 6;
J. Bruce Fields 27dead4
			}
J. Bruce Fields 27dead4
		fi
cvsdist 9e6d913
	}
cvsdist 9e6d913
cvsdist 9e6d913
	# Start daemon.
48d9c62
	daemon $prog ${RPCSVCGSSDARGS}
cvsdist 9e6d913
	RETVAL=$?
cvsdist 9e6d913
	echo
ba86d89
	[ $RETVAL -eq 0 ] && touch $LOCKFILE
cvsdist 9e6d913
	;;
cvsdist 9e6d913
  stop)
0fb3f74
	# Just exit if not configured
0fb3f74
	[ "${SECURE_NFS}" != "yes" ] && exit 6
0fb3f74
0fb3f74
	# Only root can stop the service
0fb3f74
	[ $uid -ne 0 ] && exit 4
0fb3f74
cvsdist 9e6d913
	# Stop daemon.
3f418c2
	echo -n $"Shutting down RPC svcgssd: "
cvsdist 9e6d913
	killproc $prog
cvsdist 9e6d913
	RETVAL=$?
cvsdist 9e6d913
	echo
0c53dbc
	rm -f $LOCKFILE
cvsdist 9e6d913
	;;
cvsdist 9e6d913
  status)
cvsdist 9e6d913
	status rpc.svcgssd
cvsdist 9e6d913
	RETVAL=$?
cvsdist 9e6d913
	;;
0fb3f74
  restart|reload|force-reload)
cvsdist 9e6d913
	$0 stop
cvsdist 9e6d913
	$0 start
cvsdist 9e6d913
	RETVAL=$?
cvsdist 9e6d913
	;;
0fb3f74
  condrestart|try-restart)
ba86d89
	if [ -f $LOCKFILE ]; then
cvsdist 9e6d913
		$0 restart
cvsdist 9e6d913
		RETVAL=$?
cvsdist 9e6d913
	fi
cvsdist 9e6d913
	;;
1ae9fb3
  condstop)
1ae9fb3
	if [ -f $LOCKFILE ]; then
1ae9fb3
		$0 stop
1ae9fb3
		RETVAL=$?
1ae9fb3
	fi
1ae9fb3
	;;
cvsdist 9e6d913
  *)
0fb3f74
	echo $"Usage: $0 {start|stop|restart|force-reload|condstart|condrestart|try-restart|status|condstop}"
0fb3f74
	RETVAL=2
cafae3a
	;;
cvsdist 9e6d913
esac
cvsdist 9e6d913
cvsdist 9e6d913
exit $RETVAL