#!/bin/bash # # rpcidmapd Start up and shut down RPC name to UID/GID mapper # # chkconfig: 345 18 85 # description: Starts user-level daemon for NFSv4 that maps user \ # names to UID and GID numbers. ### BEGIN INIT INFO # Provides: rpcidmapd # Required-Start: $network $syslog # Required-Stop: $network $syslog # Default-Start: 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Starts the NFSv4 id mapping daemon # Description: NFS is a popular protocol for file sharing across \ # networks. This deamon maps user names and groups to UID \ # and GID numbers on NFSv4 mounts. ### END INIT INFO # Source function library. . /etc/init.d/functions # Source networking configuration. [ -f /etc/sysconfig/network ] && . /etc/sysconfig/network # Check for and source configuration file otherwise set defaults [ -f /etc/sysconfig/nfs ] && . /etc/sysconfig/nfs RETVAL=0 LOCKFILE=/var/lock/subsys/rpcidmapd prog="rpc.idmapd" case "$1" in start|condstart) # Check that networking is up. [ "${NETWORKING}" != "yes" ] && exit 6 [ ! -x /usr/sbin/rpc.idmapd ] && exit 5 # Make sure the daemon is not already running. [ "$1" = "condstart" -a -n "`pidofproc $prog`" ] && { killproc $prog "-SIGHUP" > /dev/null exit 0 } [ "$1" = "start" ] && { if status $prog > /dev/null ; then exit 0 fi } rm -f $LOCKFILE echo -n $"Starting RPC idmapd: " # 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 } } } # Start daemon. daemon $prog ${RPCIDMAPDARGS} RETVAL=$? echo [ $RETVAL -eq 0 ] && touch $LOCKFILE ;; stop) # Stop daemon. echo -n $"Stopping RPC idmapd: " killproc $prog RETVAL=$? echo rm -f $LOCKFILE ;; status) status rpc.idmapd 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