From afa025c3a6e7db591f5e6ad5bedbbeab88a18e59 Mon Sep 17 00:00:00 2001 From: Tom Mortensen Date: Wed, 8 Jan 2025 00:46:16 -0800 Subject: [PATCH] rc.nfsd: support user-defined config settings --- etc/rc.d/rc.local | 1 + etc/rc.d/rc.nfsd | 24 +++++++++++++----------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/etc/rc.d/rc.local b/etc/rc.d/rc.local index 4249f8d0b..4444b53e2 100755 --- a/etc/rc.d/rc.local +++ b/etc/rc.d/rc.local @@ -52,6 +52,7 @@ rm -rf /kernel # Ensure required config directories exist # these will all have permissions 0700 CONFIG="/boot/config" +mkdir -p $CONFIG/default mkdir -p $CONFIG/modprobe.d mkdir -p $CONFIG/plugins/dockerMan mkdir -p $CONFIG/plugins/dynamix/users diff --git a/etc/rc.d/rc.nfsd b/etc/rc.d/rc.nfsd index ec4831f97..93065a68b 100755 --- a/etc/rc.d/rc.nfsd +++ b/etc/rc.d/rc.nfsd @@ -18,9 +18,10 @@ NFSD="/usr/sbin/rpc.nfsd" EXPORTFS="/usr/sbin/exportfs" RQUOTAD="/usr/sbin/rpc.rquotad" MOUNTD="/usr/sbin/rpc.mountd" -OPTIONS="-u -s" RPC="/etc/default/rpc" NFS="/etc/default/nfs" +RPC_CFG="/boot/config/default/rpc" +NFS_CFG="/boot/config/default/nfs" # run & log functions . /etc/rc.d/rc.runlog @@ -28,14 +29,19 @@ NFS="/etc/default/nfs" # library functions . /etc/rc.d/rc.library.source +# source default settings: +[[ -r $NFS ]] && . $NFS +[[ -r $NFS_CFG ]] && . $NFS_CFG + +[[ -r $RPC ]] && . $RPC +[[ -r $RPC_CFG ]] && . $RPC_CFG + # get bind addresses if check && [[ -n $BIND ]]; then - RPC_NFSD_OPTS="$OPTIONS -H ${BIND// / -H }" + RPC_NFSD_BIND="-H ${BIND// / -H }" + sed -ri "s/^(RPC_NFSD_BIND)=.*/\1=\"$RPC_NFSD_BIND\"/" $NFS 2>/dev/null fi -# source default settings: -[[ -r $RPC ]] && . $RPC - nfsd_running(){ sleep 0.1 ps axc | grep -q rpc.mountd @@ -81,13 +87,9 @@ nfsd_start(){ [[ -n $RPC_RQUOTAD_PORT ]] && RPC_RQUOTAD_OPTS="$RPC_RQUOTAD_OPTS -p $RPC_RQUOTAD_PORT" run $RQUOTAD $RPC_RQUOTAD_OPTS fi - # update default settings - sed -ri "s/^(RPC_NFSD_OPTS)=.*/\1=\"$RPC_NFSD_OPTS\"/" $NFS 2>/dev/null - [[ -r $NFS ]] && . $NFS - # start nfsd servers - 8 if not set extrawise (an old Sun standard): + # start nfsd servers if [[ -x $NFSD ]]; then - [[ -z $RPC_NFSD_COUNT ]] && RPC_NFSD_COUNT=8 - run $NFSD $RPC_NFSD_OPTS $RPC_NFSD_COUNT + run $NFSD $RPC_NFSD_VERS $RPC_NFSD_XPORT $RPC_NFSD_BIND $RPC_NFSD_OPTS $RPC_NFSD_COUNT fi if [[ -x $MOUNTD ]]; then [[ -n $RPC_MOUNTD_PORT ]] && RPC_MOUNTD_OPTS="$RPC_MOUNTD_OPTS -p $RPC_MOUNTD_PORT"