From 8ca940f0a1812d42054220235e1bf91d93ad48ba Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Tue, 20 Mar 2007 14:56:57 +0000 Subject: [PATCH] - init scripts for NFSv4 RPC daemons Changed files: rpcgssd.init -> 1.1 rpcidmapd.init -> 1.1 rpcsvcgssd.init -> 1.1 --- rpcgssd.init | 89 +++++++++++++++++++++++++++++++++++++++++++++++++ rpcidmapd.init | 82 +++++++++++++++++++++++++++++++++++++++++++++ rpcsvcgssd.init | 86 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 257 insertions(+) create mode 100644 rpcgssd.init create mode 100644 rpcidmapd.init create mode 100644 rpcsvcgssd.init diff --git a/rpcgssd.init b/rpcgssd.init new file mode 100644 index 0000000..a87ae1a --- /dev/null +++ b/rpcgssd.init @@ -0,0 +1,89 @@ +#!/bin/bash +# +# rpcgssd Start up and shut down RPCSEC GSS daemon +# +# Authors: Chuck Lever +# +# chkconfig: 345 14 81 +# description: Starts user-level daemon that manages RPCSEC GSS contexts \ +# for the NFSv4 client. + +# Source function library. +. /etc/rc.d/init.d/functions + +# Get network config +. /etc/sysconfig/network + +# Check that networking is up. +if is_yes "${NETWORKING}"; then + if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then + msg_network_down "RPC gssd daemon" + exit 1 + fi +else + exit 0 +fi + +if [ -x /sbin/pidof ] && [ "$1" != "stop" ]; then + [ -z "`/sbin/pidof portmap`" ] && nls "Error: portmap isn't running" && exit 0 +fi + +# Get service config +[ -f /etc/sysconfig/nfsfs ] && . /etc/sysconfig/nfsfs + +is_yes "${SECURE_NFS}" || exit 0 + +# List of kernel modules to load +[ -z "${SECURE_NFS_MODS}" ] && SECURE_NFS_MODS="des rpcsec_gss_krb5" + +# /usr may be on NFS, fail silently, nfsfs will start it +[ -x /usr/sbin/rpc.gssd ] || exit 0 + +RETVAL=0 + +# See how we were called. +case "$1" in + start) + # Check if the service is already running? + if [ ! -f /var/lock/subsys/gssd ]; then + if ! grep -q rpc_pipefs /proc/mounts ; then + modprobe -s sunrpc >/dev/null 2>&1 + run_cmd "Mounting /var/lib/nfs/rpc_pipefs filesystem" \ + mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs + fi + # Load rpcsec modules + for i in ${SECURE_NFS_MODS} ; do + _modprobe single die $i + done + msg_starting "RPC gssd" + daemon rpc.gssd $RPCGSSOPTIONS + RETVAL=$? + [ $RETVAL = 0 ] && touch /var/lock/subsys/gssd + else + msg_already_running "RPC gssd" + fi + ;; + stop) + if [ -f /var/lock/subsys/gssd ]; then + msg_stopping "RPC gssd" + killproc rpc.gssd + rm -f /var/lock/subsys/gssd + else + msg_not_running "RPC gssd" + fi + ;; + status) + status rpc.gssd + RETVAL=$? + ;; + restart|reload) + $0 stop + $0 start + RETVAL=$? + ;; + *) + msg_usage "$0 {start|stop|restart|status}" + exit 1 +esac + +exit $RETVAL diff --git a/rpcidmapd.init b/rpcidmapd.init new file mode 100644 index 0000000..0b18215 --- /dev/null +++ b/rpcidmapd.init @@ -0,0 +1,82 @@ +#!/bin/bash +# +# rpcidmapd Start up and shut down RPC name to UID/GID mapper +# +# Authors: Chuck Lever +# +# chkconfig: 345 13 82 +# description: Starts user-level daemon for NFSv4 that maps user \ +# names to UID and GID numbers. + +# Source function library. +. /etc/rc.d/init.d/functions + +# Get network config +. /etc/sysconfig/network + +# Check that networking is up. +if is_yes "${NETWORKING}"; then + if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then + msg_network_down "RPC svcgssd daemon" + exit 1 + fi +else + exit 0 +fi + +if [ -x /sbin/pidof ] && [ "$1" != "stop" ]; then + [ -z "`/sbin/pidof portmap`" ] && nls "Error: portmap isn't running" && exit 0 +fi + +# Get service config +[ -f /etc/sysconfig/nfsfs ] && . /etc/sysconfig/nfsfs +[ -f /etc/sysconfig/nfsd ] && . /etc/sysconfig/nfsd + +# /usr may be on NFS, fail silently, nfsfs will start it +[ -x /usr/sbin/rpc.idmapd ] || exit 0 + +RETVAL=0 + +# See how we were called. +case "$1" in + start) + # Check if the service is already running? + if [ ! -f /var/lock/subsys/idmapd ]; then + if ! grep -q rpc_pipefs /proc/mounts ; then + modprobe -s sunrpc >/dev/null 2>&1 + run_cmd "Mounting /var/lib/nfs/rpc_pipefs filesystem" \ + mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs + fi + + msg_starting "RPC idmapdd" + daemon rpc.idmapd $RPCIDMAPOPTIONS + RETVAL=$? + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/idmapd + else + msg_already_running "RPC idmapdd" + fi + ;; + stop) + if [ -f /var/lock/subsys/idmapd ]; then + msg_stopping "RPC idmapd" + killproc rpc.idmapd + rm -f /var/lock/subsys/idmapd + else + msg_not_running "RPC idmapd" + fi + ;; + status) + status rpc.idmapd + RETVAL=$? + ;; + restart|reload) + $0 stop + $0 start + RETVAL=$? + ;; + *) + msg_usage "$0 {start|stop|restart|status}" + exit 1 +esac + +exit $RETVAL diff --git a/rpcsvcgssd.init b/rpcsvcgssd.init new file mode 100644 index 0000000..0a6dff1 --- /dev/null +++ b/rpcsvcgssd.init @@ -0,0 +1,86 @@ +#!/bin/bash +# +# rpcsvcgssd Start up and shut down RPCSEC GSS daemon +# +# Authors: Chuck Lever +# +# chkconfig: - 14 81 +# description: Starts user-level daemon that manages RPCSEC GSS contexts \ +# for the NFSv4 server. + +# Source function library. +. /etc/rc.d/init.d/functions + +# Get network config +. /etc/sysconfig/network + +# Check that networking is up. +if is_yes "${NETWORKING}"; then + if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then + msg_network_down "RPC svcgssd daemon" + exit 1 + fi +else + exit 0 +fi + +if [ -x /sbin/pidof ] && [ "$1" != "stop" ]; then + [ -z "`/sbin/pidof portmap`" ] && nls "Error: portmap isn't running" && exit 0 +fi + +# Get service config +[ -f /etc/sysconfig/nfsd ] && . /etc/sysconfig/nfsd + +is_yes "${SECURE_NFS}" || exit 0 + +# List of kernel modules to load +[ -z "${SECURE_NFS_MODS}" ] && SECURE_NFS_MODS="des rpcsec_gss_krb5" + +RETVAL=0 + +# See how we were called. +case "$1" in + start) + # Check if the service is already running? + if [ ! -f /var/lock/subsys/svcgssd ]; then + if ! grep -q rpc_pipefs /proc/mounts ; then + modprobe -s sunrpc >/dev/null 2>&1 + run_cmd "Mounting /var/lib/nfs/rpc_pipefs filesystem" \ + mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs + fi + # Load rpcsec modules + for i in ${SECURE_NFS_MODS} ; do + _modprobe single die $i + done + msg_starting "RPC svcgssd" + daemon rpc.svcgssd $RPCSVCGSSOPTIONS + RETVAL=$? + [ $RETVAL = 0 ] && touch /var/lock/subsys/svcgssd + else + msg_already_running "RPC svcgssd" + fi + ;; + stop) + if [ -f /var/lock/subsys/svcgssd ]; then + msg_stopping "RPC svcgssd" + killproc rpc.svcgssd + rm -f /var/lock/subsys/svcgssd + else + msg_not_running "RPC svcgssd" + fi + ;; + status) + status rpc.svcgssd + RETVAL=$? + ;; + restart|reload) + $0 stop + $0 start + RETVAL=$? + ;; + *) + msg_usage "$0 {start|stop|restart|status}" + exit 1 +esac + +exit $RETVAL -- 2.44.0