summaryrefslogtreecommitdiffstats
path: root/base/nfs-utils/nfs-server.sh
blob: dc48b387bf3c48c76cf3740adf73d428c999581f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/bin/sh
# Begin $rc_base/init.d/nfs-server

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org

#$LastChangedBy: bdubbs $
#$Date: 2006-09-10 19:41:47 -0500 (Sun, 10 Sep 2006) $

. /etc/sysconfig/rc
. $rc_functions
. /etc/sysconfig/nfs-server
newuser=nobody
newgroup=nogroup
newid=99
getent group $newgroup || /usr/bin/groupadd -g $newid $newgroup
getent passwd $newuser || /usr/bin/useradd -c "Unprivileged Nobody" \
-g $newgroup -u $newid -d /dev/null -s /bin/false $newuser
case "$1" in
	start)
		boot_mesg "Starting NFS mountd..."
		loadproc /usr/sbin/rpc.mountd

		boot_mesg "Starting NFS nfsd..."
		loadproc /usr/sbin/rpc.nfsd -p $PORT $PROCESSES

		boot_mesg "Starting NFS statd..."
		loadproc /usr/sbin/rpc.statd

		if [ "$QUOTAS" = "yes" ]; then
			boot_mesg "Starting NFS rquotad..."
			loadproc /usr/sbin/rpc.rquotad
		fi

		# NFSD support only in 2.6 kernel
		/bin/uname -r | /bin/grep "2.6" 2>&1 > /dev/null
		if [ $? = 0 ]; then
			boot_mesg "Mounting nfsd virtual filesystem..."
			/bin/mount -t nfsd none /proc/fs/nfsd 2>&1 > /dev/null
			evaluate_retval
		fi

		# Make ceratin that the list is refreshed on
		# a restart.
		boot_mesg "Exporting NFS Filesystems..."
		/usr/sbin/exportfs -ra 2>&1 > /dev/null
		evaluate_retval
		;;

	stop)
		boot_mesg "Stopping NFS statd..."
		killproc /usr/sbin/rpc.statd

		boot_mesg "Stopping NFS nfsd..."
		# nfsd needs HUP....
		killproc nfsd HUP

		boot_mesg "Stopping NFS mountd..."
		killproc /usr/sbin/rpc.mountd

		if [ "$QUOTAS" = "yes" ]; then
			boot_mesg "Stopping NFS rquotad..."
			killproc /usr/sbin/rpc.rquotad
		fi

		boot_mesg "Refreshing NFS Exported Filesystems..."
		/usr/sbin/exportfs -au 2>&1 > /dev/null
		evaluate_retval

		# NFSD support only in 2.6 kernel
                /bin/uname -r | /bin/grep "2.6" 2>&1 > /dev/null
                if [ $? = 0 ]; then
			boot_mesg "Unmounting NFS Virtual Filesystem..."
			/bin/umount /proc/fs/nfsd 2>&1 > /dev/null
			evaluate_retval
		fi

		# Remove a pid file that isn't done automatically
		boot_mesg "Removing the rpc.statd pid file if it exists"
		if [ -f /var/run/rpc.statd.pid ]; then
		    rm -f /var/run/rpc.statd.pid
		fi
		;;

	reload)
		boot_mesg "Reloading NFS Server..."
		/usr/sbin/exportfs -ra
		evaluate_retval
		;;

	restart)
		$0 stop
		sleep 1
		$0 start
		;;

	status)
		statusproc /usr/sbin/rpc.mountd
		## Special case for nfsd with no full path
		statusproc nfsd
		statusproc /usr/sbin/rpc.statd
		if [ "$QUOTA" = "yes" ]; then
			statusproc rpc.rquotad
		fi
		;;

	*)
		echo "Usage: $0 {start|stop|reload|restart|status}"
		exit 1
		;;
esac

# End $rc_base/init.d/nfs-server