]> git.pld-linux.org Git - packages/nfs-utils.git/blame - nfs.init
- fix restart targer (now restarting server do not cause hanging clients).
[packages/nfs-utils.git] / nfs.init
CommitLineData
bf44c74c 1#!/bin/sh
083dbab7 2#
d419f9f1
JR
3# nfs This shell script takes care of starting and stopping
4# the NFS services.
083dbab7 5#
0e3733a2 6# chkconfig: 345 60 20
7# description: NFS is a popular protocol for file sharing across TCP/IP \
8# networks. This service provides NFS server functionality, \
9# which is configured via the /etc/exports file.
10# probe: true
083dbab7 11
0e3733a2 12# Source function library
083dbab7 13. /etc/rc.d/init.d/functions
14
0e3733a2 15# Get network config
083dbab7 16. /etc/sysconfig/network
17
0e3733a2 18# Get service config
d419f9f1 19[ -f /etc/sysconfig/nfsd ] && . /etc/sysconfig/nfsd
0e3733a2 20
083dbab7 21# Check that networking is up.
bf36188d
JR
22if is_no "${NETWORKING}"; then
23 msg_Network_Down NFSD
7bf93ef0 24 exit 1
25fi
083dbab7 26
d419f9f1
JR
27if [ -x /sbin/pidof ] && [ "$1" != "stop" ]; then
28 [ -z "`/sbin/pidof portmap`" ] && echo "Error: portmap isn't running" && exit 0
29fi
083dbab7 30
d419f9f1
JR
31# Sanity checks
32[ -x /usr/sbin/rpc.nfsd ] || exit 0
33[ -x /usr/sbin/rpc.mountd ] || exit 0
34[ -f /etc/exports ] || exit 0
0e3733a2 35
083dbab7 36# See how we were called.
37case "$1" in
38 start)
0fb1eec5
JB
39 # Check if the service is already running?
40 if [ ! -f /var/lock/subsys/nfs ]; then
41 # Start daemons.
42 if [ "$NFSDTYPE" = "U" ] ; then
43 msg_starting "NFS mountd"
44 daemon rpc.mountd
45 msg_starting "NFS daemon"
46 daemon rpc.nfsd
47 else
48 msg_starting "NFS"
49 daemon /usr/sbin/exportfs -r
50 msg_starting "NFS mountd"
51 daemon rpc.mountd $RPCMOUNTDOPTS
52 msg_starting "NFS daemon"
53 daemon rpc.nfsd $RPCNFSDCOUNT
54 fi
55 touch /var/lock/subsys/nfs
0e3733a2 56 else
0fb1eec5
JB
57 msg_Already_Running "NFS"
58 exit 1
0e3733a2 59 fi
083dbab7 60 ;;
61 stop)
0fb1eec5
JB
62 if [ -f /var/lock/subsys/nfs ]; then
63 # Stop daemons.
64 if [ "$NFSDTYPE" = "U" ] ; then
65 msg_stopping "NFS mountd"
66 killproc rpc.mountd
67 msg_stopping "NFS daemon"
68 killproc rpc.nfsd
69 else
70 msg_stopping "NFS mountd"
71 killproc rpc.mountd
72 msg_stopping "NFS daemon"
73 killproc nfsd -QUIT
74 msg_stopping "NFS"
75 daemon /usr/sbin/exportfs -au
76 fi
77 rm -f /var/lock/subsys/nfs
d419f9f1 78 else
0fb1eec5
JB
79 msg_Not_Running "NFS"
80 exit 1
d419f9f1 81 fi
083dbab7 82 ;;
83 status)
84 status rpc.mountd
05bf5368 85 if [ "$NFSDTYPE" = "U" ] ; then
d419f9f1
JR
86 status rpc.nfsd
87 else
88 status nfsd
89 fi
083dbab7 90 ;;
91 restart)
232f9b6a 92 $0 stop
93 $0 start
d419f9f1
JR
94 ;;
95 reload)
05bf5368 96 [ "$NFSDTYPE" = "U" ] && exit 0
d419f9f1
JR
97 /usr/sbin/exportfs
98 touch /var/lock/subsys/nfs
99 ;;
100 probe)
05bf5368 101 [ "$NFSDTYPE" = "U" ] && exit 0
d419f9f1
JR
102 if [ ! -f /var/lock/subsys/nfs ] ; then
103 echo start; exit 0
104 fi
105 /sbin/pidof rpc.mountd >/dev/null 2>&1; MOUNTD="$?"
106 /sbin/pidof nfsd >/dev/null 2>&1; NFSD="$?"
107 if [ $MOUNTD = 1 -o $NFSD = 1 ] ; then
108 echo restart; exit 0
109 fi
110 if [ /etc/exports -nt /var/lock/subsys/nfs ] ; then
111 echo reload; exit 0
112 fi
083dbab7 113 ;;
114 *)
0a59f582 115 msg_usage "$0 {start|stop|status|restart|reload|probe}"
083dbab7 116 exit 1
117esac
118
119exit 0
This page took 0.092472 seconds and 4 git commands to generate.