Mercurial > illumos > onarm
view usr/src/cmd/fs.d/nfs/svc/nfs-server @ 0:c9caec207d52 b86
Initial porting based on b86
author | Koji Uno <koji.uno@sun.com> |
---|---|
date | Tue, 02 Jun 2009 18:56:50 +0900 |
parents | |
children | 1a15d5aaf794 |
line wrap: on
line source
#!/sbin/sh # # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # #pragma ident "@(#)nfs-server 1.15 07/04/02 SMI" # Start/stop processes required for server NFS . /lib/svc/share/smf_include.sh zone=`smf_zonename` case "$1" in 'start') # The NFS server is not supported in a local zone if smf_is_nonglobalzone; then /usr/sbin/svcadm disable -t svc:/network/nfs/server echo "The NFS server is not supported in a local zone" sleep 5 & exit $SMF_EXIT_OK fi # Share all file systems enabled for sharing. sharemgr understands # regular shares and ZFS shares and will handle both. Technically, # the shares would have been started long before getting here since # nfsd has a dependency on them. startnfsd=0 # restart stopped shares from the repository /usr/sbin/sharemgr start -P nfs -a # Start up mountd and nfsd if anything is exported. if /usr/bin/grep -s nfs /etc/dfs/sharetab >/dev/null; then startnfsd=1 fi # If auto-enable behavior is disabled, always start nfsd if [ `svcprop -p application/auto_enable nfs/server` = "false" ]; then startnfsd=1 fi # Options for nfsd are now set in /etc/default/nfs if [ $startnfsd -ne 0 ]; then /usr/lib/nfs/mountd /usr/lib/nfs/nfsd else /usr/sbin/svcadm disable -t svc:/network/nfs/server echo "No NFS filesystems are shared" sleep 5 & fi ;; 'refresh') /usr/sbin/sharemgr start -P nfs -a ;; 'stop') /usr/bin/pkill -x -u 0,1 -z $zone '(nfsd|mountd)' # Unshare all shared file systems using NFS /usr/sbin/sharemgr stop -P nfs -a # # Wait up to 10 seconds for nfslogd to gracefully handle SIGHUP # /usr/bin/pkill -HUP -x -u 0 -z $zone nfslogd wtime=10 while [ $wtime -gt 0 ]; do /usr/bin/pgrep -x -u 0 -z $zone nfslogd >/dev/null || break wtime=`expr $wtime - 1` sleep 1 done # # Kill nfslogd more forcefully if it did not shutdown during # the grace period # if [ $wtime -eq 0 ]; then /usr/bin/pkill -TERM -x -u 0 -z $zone nfslogd fi # Kill any processes left in service contract smf_kill_contract $2 TERM 1 [ $? -ne 0 ] && exit 1 ;; *) echo "Usage: $0 { start | stop | refresh }" exit 1 ;; esac exit $SMF_EXIT_OK