#!/bin/sh ### BEGIN INIT INFO # Provides: nfs-common # Required-Start: $time # Required-Stop: $time # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: NFS support files common to 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 # What is this? DESC="NFS common utilities" # Read config DEFAULTFILE=/etc/default/nfs-common PREFIX= NEED_LOCKD= NEED_IDMAPD= NEED_GSSD= PIPEFS_MOUNTPOINT=/var/lib/nfs/rpc_pipefs RPCGSSDOPTS= if [ -f $DEFAULTFILE ]; then . $DEFAULTFILE fi . /lib/lsb/init-functions # Determine whether lockd daemon is required. case "$NEED_LOCKD" in yes|no) ;; *) case `uname -r` in '' | [01].* | 2.[0123].* ) # Older kernels may or may not need a lockd daemon. # We must assume they do, unless we can prove otherwise. # (A false positive here results only in a harmless message.) NEED_LOCKD=yes if test -f /proc/ksyms then grep -q lockdctl /proc/ksyms || NEED_LOCKD=no fi ;; *) # Modern kernels (>= 2.4) start a lockd thread automatically. NEED_LOCKD=no ;; esac ;; esac # # Parse the fstab file, and determine whether we need idmapd and gssd. (The # /etc/defaults settings, if any, will override our autodetection.) This code # is partially adapted from the mountnfs.sh script in the sysvinit package. # AUTO_NEED_IDMAPD=no AUTO_NEED_GSSD=no exec 9<&0 /dev/null || true log_end_msg 0 ;; status) if ! pidof rpc.statd >/dev/null then echo "rpc.statd not running" exit 3 fi if [ "$NEED_GSSD" = yes ] then if ! pidof rpc.gssd >/dev/null then echo "rpc.statd running, but rpc.gssd halted" exit 3 fi fi if [ "$NEED_LOCKD" = yes ] then if ! pidof rpc.lockd >/dev/null then echo "rpc.statd running, but rpc.lockd halted" exit 3 fi fi if [ "$NEED_IDMAPD" = yes ] then if ! pidof rpc.idmapd >/dev/null then echo "rpc.statd running, but rpc.idmapd halted" exit 3 fi fi echo "rpc.statd running" exit 0 ;; restart | force-reload) $0 stop sleep 1 $0 start ;; *) log_success_msg "Usage: nfs-common {start|stop|status|restart}" exit 1 ;; esac exit 0