summaryrefslogtreecommitdiffstats
path: root/abs/core/nfs-utils/nfs-common
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/nfs-utils/nfs-common')
-rw-r--r--abs/core/nfs-utils/nfs-common315
1 files changed, 0 insertions, 315 deletions
diff --git a/abs/core/nfs-utils/nfs-common b/abs/core/nfs-utils/nfs-common
deleted file mode 100644
index 7b16b4b..0000000
--- a/abs/core/nfs-utils/nfs-common
+++ /dev/null
@@ -1,315 +0,0 @@
-#!/bin/bash
-
-daemon_name=nfs-common
-
-NEED_STATD=
-STATD_OPTS=
-NEED_IDMAPD=
-IDMAPD_OPTS=
-NEED_GSSD=
-GSSD_OPTS=
-PIPEFS_MOUNTPOINT=
-PIPEFS_MOUNTOPTS=
-
-# rpc.statd daemon & binary location
-STATD_DAEMON_NAME=rpc.statd
-STATD="/usr/sbin/rpc.statd"
-
-# rpc.idmapd daemon & binary location
-IDMAPD_DAEMON_NAME=rpc.idmapd
-IDMAPD="/usr/sbin/rpc.idmapd"
-
-# rpc.gssd daemon & binary location
-GSSD_DAEMON_NAME=rpc.gssd
-GSSD="/usr/sbin/rpc.gssd"
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-. /etc/conf.d/$daemon_name.conf
-
-# Default mountpoint and options for rpc_pipefs filesystem
-[ -z "$PIPEFS_MOUNTPOINT" ] && PIPEFS_MOUNTPOINT="/var/lib/nfs/rpc_pipefs"
-[ -z "$PIPEFS_MOUNTOPTS" ] && PIPEFS_MOUNTOPTS="defaults"
-
-# Parse the fstab file, and determine whether we need idmapd and gssd. (The
-# /etc/conf.d/nfs-common settings, if any, will override our autodetection.)
-AUTO_NEED_IDMAPD=no
-AUTO_NEED_GSSD=no
-
-if [ -f /etc/fstab ]; then
- exec 9<&0 </etc/fstab
-
- while read DEV MTPT FSTYPE OPTS REST; do
- if [ "$FSTYPE" = "nfs4" ]; then
- AUTO_NEED_IDMAPD=yes
- fi
- case "$OPTS" in
- sec=krb5|*,sec=krb5|sec=krb5,*|*,sec=krb5i,*|sec=krb5i|*,sec=krb5i|sec=krb5i,*|*,sec=krb5i,*|sec=krb5p|*,sec=krb5p|sec=krb5p,*|*,sec=krb5p,*)
- AUTO_NEED_GSSD=yes
- ;;
- esac
- done
-
- exec 0<&9 9<&-
-fi
-
-# We also need idmapd if we run an NFSv4 server. It's fairly difficult
-# to autodetect whether there are NFSv4 exports or not, and idmapd is not a
-# particularily heavy daemon, so we auto-enable it if we find an /etc/exports
-# file. This does not mean that there are NFSv4 or other mounts active (or
-# even that nfs-kernel-server is installed), but it matches what the "start"
-# condition in nfs-kernel-server's init script does, which has a value in
-# itself.
-if [ -f /etc/exports ] && grep -q '^[[:space:]]*[^#]*/' /etc/exports; then
- AUTO_NEED_IDMAPD=yes
-fi
-
-case "$NEED_STATD" in
- yes|no)
- ;;
- *)
- NEED_STATD=yes
- ;;
-esac
-
-case "$NEED_IDMAPD" in
- yes|no)
- ;;
- *)
- NEED_IDMAPD=$AUTO_NEED_IDMAPD
- ;;
-esac
-
-case "$NEED_GSSD" in
- yes|no)
- ;;
- *)
- NEED_GSSD=$AUTO_NEED_GSSD
- ;;
-esac
-
-do_modprobe() {
- if [ -x /sbin/modprobe -a -f /proc/modules ]; then
- modprobe -q "$1" || true
- fi
-}
-
-do_mount() {
- if ! grep -E "$1\$" /proc/filesystems &> /dev/null ; then
- return 1
- fi
-
- if grep -vw "$1" /proc/mounts &> /dev/null ; then
- if ! mountpoint -q "$2" ; then
- mount -t "$1" "$1" "$2" -o "$3"
- return
- fi
- fi
- return 0
-}
-
-do_umount() {
- if mountpoint -q "$1" ; then
- umount "$1"
- fi
- return 0
-}
-
-get_pid() {
- pidof -o %PPID "$1"
-}
-
-case "$1" in
- start)
- ck_daemon rpcbind && { echo -n "Start rpcbind first." >&2; stat_die; }
- rc=0
- if [ "$NEED_STATD" = yes ]; then
- stat_busy "Starting $STATD_DAEMON_NAME daemon"
- PID=$(get_pid $STATD)
- if [ -z "$PID" ]; then
- [ -f /var/run/$STATD_DAEMON_NAME.pid ] && rm -f /var/run/$STATD_DAEMON_NAME.pid
- # RUN
- $STATD $STATD_OPTS
- #
- rc=$(($rc+$?))
- if [ $rc -gt 0 ]; then
- stat_fail
- exit $rc
- else
- echo $(get_pid $STATD) > /var/run/$STATD_DAEMON_NAME.pid
- stat_done
- fi
- else
- stat_fail
- exit 1
- fi
- # Run sm-notify
- /usr/sbin/sm-notify $SMNOTIFY_OPTS
- fi
-
- if [ "$NEED_IDMAPD" = yes ] || [ "$NEED_GSSD" = yes ]; then
- stat_busy "Mounting pipefs filesystem"
- do_modprobe sunrpc
- do_modprobe nfs
- do_modprobe nfsd
- do_mount rpc_pipefs "$PIPEFS_MOUNTPOINT" "$PIPEFS_MOUNTOPTS"
- rc=$(($rc+$?))
- if [ $rc -gt 0 ]; then
- stat_fail
- exit $rc
- else
- stat_done
- fi
-
- if [ "$NEED_IDMAPD" = yes ]; then
- stat_busy "Starting $IDMAPD_DAEMON_NAME daemon"
- PID=$(get_pid $IDMAPD)
- if [ -z "$PID" ]; then
- [ -f /var/run/$IDMAPD_DAEMON_NAME.pid ] && rm -f /var/run/$IDMAPD_DAEMON_NAME.pid
- # RUN
- $IDMAPD $IDMAPD_OPTS
- #
- rc=$(($rc+$?))
- if [ $rc -gt 0 ]; then
- stat_fail
- exit $rc
- else
- echo $(get_pid $IDMAPD) > /var/run/$IDMAPD_DAEMON_NAME.pid
- stat_done
- fi
- else
- stat_fail
- exit 1
- fi
- fi
-
- if [ "$NEED_GSSD" = yes ]; then
- do_modprobe rpcsec_gss_krb5
- stat_busy "Starting $GSSD_DAEMON_NAME daemon"
- PID=$(get_pid $GSSD)
- if [ -z "$PID" ]; then
- [ -f /var/run/$GSSD_DAEMON_NAME.pid ] && rm -f /var/run/$GSSD_DAEMON_NAME.pid
- # RUN
- $GSSD $GSSD_OPTS
- #
- rc=$(($rc+$?))
- if [ $rc -gt 0 ]; then
- stat_fail
- exit $rc
- else
- echo $(get_pid $GSSD) > /var/run/$GSSD_DAEMON_NAME.pid
- stat_done
- fi
- else
- stat_fail
- exit 1
- fi
- fi
- fi
-
- add_daemon $daemon_name
- ;;
-
- stop)
- rc=0
- if [ "$NEED_IDMAPD" = yes ] || [ "$NEED_GSSD" = yes ]; then
-
- if [ "$NEED_GSSD" = yes ]; then
- stat_busy "Stopping $GSSD_DAEMON_NAME daemon"
- PID=$(get_pid $GSSD)
- # KILL
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- #
- rc=$(($rc+$?))
- if [ $rc -gt 0 ]; then
- stat_fail
- exit $rc
- else
- rm -f /var/run/$GSSD_DAEMON_NAME.pid &> /dev/null
- stat_done
- fi
- fi
-
- if [ "$NEED_IDMAPD" = yes ]; then
- stat_busy "Stopping $IDMAPD_DAEMON_NAME daemon"
- PID=$(get_pid $IDMAPD)
- # KILL
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- #
- rc=$(($rc+$?))
- if [ $rc -gt 0 ]; then
- stat_fail
- exit $rc
- else
- rm -f /var/run/$IDMAPD_DAEMON_NAME.pid &> /dev/null
- stat_done
- fi
- fi
- do_umount "$PIPEFS_MOUNTPOINT" 2>/dev/null || true
- fi
-
- if [ "$NEED_STATD" = yes ]; then
- stat_busy "Stopping $STATD_DAEMON_NAME daemon"
- PID=$(get_pid $STATD)
- # KILL
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- #
- rc=$(($rc+$?))
- if [ $rc -gt 0 ]; then
- stat_fail
- exit $rc
- else
- rm -f /var/run/$STATD_DAEMON_NAME.pid &> /dev/null
- stat_done
- fi
- fi
-
- rm_daemon $daemon_name
- ;;
-
- status)
- stat_busy "Checking $daemon_name status";
- ck_status $daemon_name
-
- if [ "$NEED_STATD" = yes ]; then
- stat_busy "Daemon $STATD_DAEMON_NAME running"
- PID=$(get_pid $STATD)
- if [ -z "$PID" ]; then
- stat_fail
- else
- stat_done
- fi
- fi
-
- if [ "$NEED_GSSD" = yes ]; then
- stat_busy "Daemon $GSSD_DAEMON_NAME running"
- PID=$(get_pid $GSSD)
- if [ -z "$PID" ]; then
- stat_fail
- else
- stat_done
- fi
- fi
-
- if [ "$NEED_IDMAPD" = yes ]; then
- stat_busy "Daemon $IDMAPD_DAEMON_NAME running"
- PID=$(get_pid $IDMAPD)
- if [ -z "$PID" ]; then
- stat_fail
- else
- stat_done
- fi
- fi
- echo
- ;;
-
- restart)
- $0 stop
- sleep 3
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|status|restart}"
-esac
-exit 0
-