HEX
Server: Apache/2.4.63 (Unix)
System: Linux TOMS-220NAS 4.4.302+ #86009 SMP Wed Nov 26 18:19:17 CST 2025 x86_64
User: flavio87 (1026)
PHP: 8.3.27
Disabled: NONE
Upload Files
File: //usr/syno/lib/systemd/scripts/nfsd.sh
#!/bin/bash
# Copyright (c) 2000-2018 Synology Inc. All rights reserved.

. /etc.defaults/rc.subr
LinuxVersionCode=$(KernelVersionCode "$(KernelVersion)")

case $1 in
	pre-start)
		/usr/sbin/exportfs -r
		exit 0
	;;

	start)
		/bin/mkdir -p /var/lib/nfs/v4recovery
		/usr/syno/sbin/synonfsudc --set-syno-file-stats

		# custom port
		EnableCustomPort=`/bin/get_key_value /etc/nfs/syno_nfs_conf nfs_custom_port_enable`
		if [ x"$EnableCustomPort" == xyes ] ; then
			NlmPort=`/bin/get_key_value /etc/nfs/syno_nfs_conf nlm_port`
			echo "$NlmPort" > /proc/sys/fs/nfs/nlm_tcpport
			echo "$NlmPort" > /proc/sys/fs/nfs/nlm_udpport
		else
			echo 4045 > /proc/sys/fs/nfs/nlm_tcpport
			echo 4045 > /proc/sys/fs/nfs/nlm_udpport
		fi

		# versions
		EnableVersion4=`/bin/get_key_value /etc/nfs/syno_nfs_conf nfsv4_enable`
		if [ x"$EnableVersion4" == xyes ] ; then
			Version="-V 2 -V 3 -V 4"

			# add minor version if it does exist (old version conf)
			EnabledMinorVersion=`/bin/get_key_value /etc/nfs/syno_nfs_conf nfs_minor_ver_enable`
			if [ "$EnabledMinorVersion" == "" ]; then
				if [ "$LinuxVersionCode" -ge "$(KernelVersionCode "4.4")" ]; then
					echo "nfs_minor_ver_enable=1" >> /etc/nfs/syno_nfs_conf
					EnabledMinorVersion=1
				else
					echo "nfs_minor_ver_enable=0" >> /etc/nfs/syno_nfs_conf
					EnabledMinorVersion=0
				fi
			fi

			if [ $EnabledMinorVersion -ge 1 ]; then
				Version=$Version" -V 4.1"
			else
				Version=$Version" -N 4.1"
			fi
		else
			Version="-V 2 -V 3 -N 4 -N 4.1"
		fi
		if [ "$LinuxVersionCode" -ge "$(KernelVersionCode "4.4")" ]; then
			Version=$Version" -N 4.2"
		fi

		# nfsd count
		N=`cat /proc/meminfo | grep MemTotal: | awk '{ m = ($2 / 1024 / 32) ; print int(m) +1;}'`
		N=$((N > 128 ? 128 : N))

		/usr/sbin/nfsd $Version $N -u
	;;

	stop-post)
		/usr/sbin/exportfs -au
		/usr/sbin/exportfs -f
		/bin/rm -rf /var/lib/nfs/v4recovery
		/usr/syno/sbin/synonfsudc --clean-syno-file-stats
	;;

	stop)
		/usr/syno/sbin/synonfs_udc_sub_collector.py --save
		/usr/syno/sbin/synonfs_udc_sub_collector.py --init
		/usr/sbin/nfsd 0
	;;

	*)
		echo "Usages: $0 [pre-start|start|stop-post|stop]"
	;;
esac