#!/bin/sh ### BEGIN INIT INFO # Provides: nfs-common # Required-Start: $portmap hwclock # Required-Stop: $portmap hwclock # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: NFS support for both client and server # Description: NFS is a popular protocol for file sharing across # TCP/IP networks. This service provides various # support functions for NFS mounts. ### END INIT INFO # # Startup script for nfs-utils # # # Location of executables: # Source function library. . /etc/init.d/functions test -x "$NFS_STATD" || NFS_STATD=/usr/sbin/rpc.statd test -x "$NFS_IDMAPD" || NFS_IDMAPD=/usr/sbin/rpc.idmapd test -z "$STATD_PID" && STATD_PID=/var/run/rpc.statd.pid # # The default state directory is /var/lib/nfs test -n "$NFS_STATEDIR" || NFS_STATEDIR=/var/lib/nfs # # #---------------------------------------------------------------------- # Startup and shutdown functions. # Actual startup/shutdown is at the end of this file. #directories create_directories(){ echo -n 'creating NFS state directory: ' mkdir -p "$NFS_STATEDIR" ( cd "$NFS_STATEDIR" umask 077 mkdir -p rpc_pipefs mkdir -p sm sm.bak statd chown rpcuser:rpcuser sm sm.bak statd test -w statd/state || { rm -f statd/state :>statd/state } umask 022 for file in xtab etab smtab rmtab do test -w "$file" || { rm -f "$file" :>"$file" } done ) chown rpcuser:rpcuser "$NFS_STATEDIR" echo done } # Parse the fstab and exports file, determine if we need idmapd. # NEED_IDMAPD=no if [ -f /etc/fstab ]; then exec 9<&0 /dev/null echo done } #statd start_statd(){ echo -n "starting statd: " start-stop-daemon --start --exec "$NFS_STATD" --pidfile "$STATD_PID" echo done } stop_statd(){ echo -n 'stopping statd: ' start-stop-daemon --stop --quiet --signal 1 --pidfile "$STATD_PID" echo done } #---------------------------------------------------------------------- # # supported options: # start # stop # restart: stops and starts mountd #FIXME: need to create the /var/lib/nfs/... directories case "$1" in start) create_directories start_statd start_idmapd;; stop) stop_idmapd stop_statd;; status) status $NFS_STATD; RETVAL=$? if [ "$NEED_IDMAPD" = yes ] then status $NFS_IDMAPD rval=$? [ $rval -ne 0 ] && exit $rval fi exit $RETVAL;; restart) $0 stop $0 start;; *) echo "Usage: /etc/init.d/nfscommon {start|stop|status|restart}" exit 1;; esac