diff options
Diffstat (limited to 'net-fs/nfs-utils/files/nfs.initd')
-rw-r--r-- | net-fs/nfs-utils/files/nfs.initd | 156 |
1 files changed, 0 insertions, 156 deletions
diff --git a/net-fs/nfs-utils/files/nfs.initd b/net-fs/nfs-utils/files/nfs.initd deleted file mode 100644 index 9b4f8a47..00000000 --- a/net-fs/nfs-utils/files/nfs.initd +++ /dev/null @@ -1,156 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -extra_started_commands="reload" - -# The binary locations -exportfs=/usr/sbin/exportfs - mountd=/usr/sbin/rpc.mountd - nfsd=/usr/sbin/rpc.nfsd -smnotify=/usr/sbin/sm-notify - -depend() { - local myneed="" - # XXX: no way to detect NFSv4 is desired and so need rpc.idmapd - myneed="${myneed} $( - awk '!/^[[:space:]]*#/ { - # clear the path to avoid spurious matches - $1 = ""; - if ($0 ~ /[(][^)]*sec=(krb|spkm)[^)]*[)]/) { - print "rpc.svcgssd" - exit 0 - } - }' /etc/exports /etc/exports.d/*.exports 2>/dev/null - )" - config /etc/exports /etc/exports.d/*.exports - need portmap rpc.statd ${myneed} ${NFS_NEEDED_SERVICES} - use ypbind net dns rpc.rquotad rpc.idmapd rpc.svcgssd - after quota -} - -mkdir_nfsdirs() { - local d - for d in v4recovery v4root ; do - d="/var/lib/nfs/${d}" - [ ! -d "${d}" ] && mkdir -p "${d}" - done -} - -waitfor_exportfs() { - local pid=$1 - ( sleep ${EXPORTFS_TIMEOUT:-30}; kill -9 ${pid} 2>/dev/null ) & - wait $1 -} - -mount_nfsd() { - if [ -e /proc/modules ] ; then - # Make sure nfs support is loaded in the kernel #64709 - if ! grep -qs nfsd /proc/filesystems ; then - modprobe -q nfsd - fi - # Restart idmapd if needed #220747 - if grep -qs nfsd /proc/modules ; then - killall -q -HUP rpc.idmapd - fi - fi - - # This is the new "kernel 2.6 way" to handle the exports file - if grep -qs nfsd /proc/filesystems ; then - if ! mountinfo -q /proc/fs/nfsd ; then - ebegin "Mounting nfsd filesystem in /proc" - mount -t nfsd -o nodev,noexec,nosuid nfsd /proc/fs/nfsd - eend $? - fi - - local o - for o in ${OPTS_NFSD} ; do - echo "${o#*=}" > "/proc/fs/nfsd/${o%%=*}" - done - fi -} - -start_it() { - ebegin "Starting NFS $1" - shift - "$@" - eend $? - ret=$((ret + $?)) -} -start() { - mount_nfsd - mkdir_nfsdirs - - # Exportfs likes to hang if networking isn't working. - # If that's the case, then try to kill it so the - # bootup process can continue. - if grep -qs '^[[:space:]]*"\?/' /etc/exports /etc/exports.d/*.exports ; then - ebegin "Exporting NFS directories" - ${exportfs} -r & - waitfor_exportfs $! - eend $? - fi - - local ret=0 - start_it mountd ${mountd} ${OPTS_RPC_MOUNTD} - start_it daemon ${nfsd} ${OPTS_RPC_NFSD} - [ -x "${smnotify}" ] && start_it smnotify ${smnotify} ${OPTS_SMNOTIFY} - return ${ret} -} - -stop() { - local ret=0 - - ebegin "Stopping NFS mountd" - start-stop-daemon --stop --exec ${mountd} - eend $? - ret=$((ret + $?)) - - # nfsd sets its process name to [nfsd] so don't look for $nfsd - ebegin "Stopping NFS daemon" - start-stop-daemon --stop --name nfsd --user root --signal 2 - eend $? - ret=$((ret + $?)) - # in case things don't work out ... #228127 - rpc.nfsd 0 - - # When restarting the NFS server, running "exportfs -ua" probably - # isn't what the user wants. Running it causes all entries listed - # in xtab to be removed from the kernel export tables, and the - # xtab file is cleared. This effectively shuts down all NFS - # activity, leaving all clients holding stale NFS filehandles, - # *even* when the NFS server has restarted. - # - # That's what you would want if you were shutting down the NFS - # server for good, or for a long period of time, but not when the - # NFS server will be running again in short order. In this case, - # then "exportfs -r" will reread the xtab, and all the current - # clients will be able to resume NFS activity, *without* needing - # to umount/(re)mount the filesystem. - if [ "${RC_CMD}" != "restart" ] ; then - ebegin "Unexporting NFS directories" - # Exportfs likes to hang if networking isn't working. - # If that's the case, then try to kill it so the - # shutdown process can continue. - ${exportfs} -ua & - waitfor_exportfs $! - eend $? - fi - - return ${ret} -} - -reload() { - # Exportfs likes to hang if networking isn't working. - # If that's the case, then try to kill it so the - # bootup process can continue. - ebegin "Reloading /etc/exports" - ${exportfs} -r 1>&2 & - waitfor_exportfs $! - eend $? -} - -restart() { - svc_stop - svc_start -} |