1 <?xml version="1.0"?>
   2 <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
   3 <!--
   4 
   5  CDDL HEADER START
   6 
   7  The contents of this file are subject to the terms of the
   8  Common Development and Distribution License (the "License").
   9  You may not use this file except in compliance with the License.
  10 
  11  You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  12  or http://www.opensolaris.org/os/licensing.
  13  See the License for the specific language governing permissions
  14  and limitations under the License.
  15 
  16  When distributing Covered Code, include this CDDL HEADER in each
  17  file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  18  If applicable, add the following below this CDDL HEADER, with the
  19  fields enclosed by brackets "[]" replaced with your own identifying
  20  information: Portions Copyright [yyyy] [name of copyright owner]
  21 
  22  CDDL HEADER END
  23 
  24         Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
  25         Copyright (c) 2012 by Delphix. All rights reserved.
  26         Copyright 2014 Nexenta Systems, Inc.  All rights reserved
  27         Copyright 2016 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
  28 
  29         NOTE:  This service manifest is not editable; its contents will
  30         be overwritten by package or patch operations, including
  31         operating system upgrade.  Make customizations in a different
  32         file.
  33 
  34         Note: if this service is modified to consist of anything other
  35         than a single instance named 'default', you must make changes to
  36         $SRC/head/rpcsvc/daemon_utils.h and libnsl:open_daemon_lock().
  37 -->
  38 
  39 <service_bundle type='manifest' name='SUNWnfssr:nfs-server'>
  40 
  41 <service
  42         name='network/nfs/server'
  43         type='service'
  44         version='2'>
  45 
  46         <dependency name='network'
  47             grouping='require_any'
  48             restart_on='error'
  49             type='service'>
  50                 <service_fmri value='svc:/milestone/network' />
  51         </dependency>
  52 
  53         <dependency name='nlockmgr'
  54             grouping='require_all'
  55             restart_on='error'
  56             type='service'>
  57                 <service_fmri value='svc:/network/nfs/nlockmgr' />
  58         </dependency>
  59 
  60         <dependency name='mapid'
  61             grouping='optional_all'
  62             restart_on='error'
  63             type='service'>
  64                 <service_fmri value='svc:/network/nfs/mapid' />
  65         </dependency>
  66 
  67         <dependency name='rpcbind'
  68             grouping='require_all'
  69             restart_on='restart'
  70             type='service'>
  71                 <service_fmri value='svc:/network/rpc/bind' />
  72         </dependency>
  73 
  74         <dependency name='keyserv'
  75             grouping='optional_all'
  76             restart_on='none'
  77             type='service'>
  78                 <service_fmri value='svc:/network/rpc/keyserv' />
  79         </dependency>
  80 
  81         <dependency name='gss'
  82             grouping='optional_all'
  83             restart_on='none'
  84             type='service'>
  85                 <service_fmri value='svc:/network/rpc/gss' />
  86         </dependency>
  87 
  88         <dependency name='share-group'
  89             grouping='optional_all'
  90             restart_on='none'
  91             type='service'>
  92                 <service_fmri value='svc:/network/shares/group' />
  93         </dependency>
  94 
  95         <dependency name='reparse'
  96             grouping='optional_all'
  97             restart_on='none'
  98             type='service'>
  99                 <service_fmri value='svc:/system/filesystem/reparse' />
 100         </dependency>
 101 
 102         <!-- Must have all local filesystems mounted before we share them -->
 103         <dependency name='filesystem-local'
 104             grouping='require_all'
 105             restart_on='error'
 106             type='service'>
 107                 <service_fmri value='svc:/system/filesystem/local' />
 108         </dependency>
 109 
 110         <dependent
 111                 name='nfs-server_multi-user-server'
 112                 grouping='optional_all'
 113                 restart_on='none'>
 114                 <service_fmri value='svc:/milestone/multi-user-server' />
 115         </dependent>
 116 
 117         <!--
 118           The shareall done as part of the nfs-server method may take a
 119           long time, as the contents of dfstab can be arbitrarily large.
 120           Set the timeout appropriately for both 'start' and 'refresh'.
 121         -->
 122         <exec_method
 123             type='method'
 124             name='start'
 125             exec='/lib/svc/method/nfs-server %m'
 126             timeout_seconds='3600' />
 127 
 128         <exec_method
 129             type='method'
 130             name='refresh'
 131             exec='/lib/svc/method/nfs-server %m'
 132             timeout_seconds='3600' />
 133 
 134         <!--
 135           The stop method runs unshareall as well as up to a 10 second
 136           sleep to do graceful versus forceful shutdown of daemons.  Set
 137           the timeout appropriately.
 138         -->
 139         <exec_method
 140             type='method'
 141             name='stop'
 142             exec='/lib/svc/method/nfs-server %m %{restarter/contract}'
 143             timeout_seconds='3600' />
 144 
 145         <property_group name='application' type='framework'>
 146                 <stability value='Evolving' />
 147                 <propval name='auto_enable' type='boolean' value='true' />
 148         </property_group>
 149 
 150         <property_group name='firewall_context' type='com.sun,fw_definition'>
 151                 <propval name='name' type='astring' value='nfsd' />
 152                 <propval name='ipf_method' type='astring'
 153                     value='/lib/svc/method/nfs-server ipfilter' />
 154         </property_group>
 155  
 156         <property_group name='firewall_config' type='com.sun,fw_configuration'>
 157                 <propval name='policy' type='astring' value='use_global' />
 158                 <propval name='block_policy' type='astring'
 159                         value='use_global' />
 160                 <propval name='apply_to' type='astring' value='' />
 161                 <propval name='apply_to_6' type='astring' value='' />
 162                 <propval name='exceptions' type='astring' value='' />
 163                 <propval name='exceptions_6' type='astring' value='' />
 164                 <propval name='target' type='astring' value='' />
 165                 <propval name='target_6' type='astring' value='' />
 166                 <propval name='value_authorization' type='astring'
 167                         value='solaris.smf.value.firewall.config' />
 168         </property_group>
 169         <instance name='default' enabled='false'>
 170          <property_group name='nfs-props' type='com.oracle.nfs,props'>
 171            <propval name='device' type='astring' value=''/>
 172            <propval name='listen_backlog' type='integer' value='32'/>
 173            <propval name='max_connections' type='integer' value='-1'/>
 174            <propval name='protocol' type='astring' value='ALL'/>
 175            <propval name='server_delegation' type='astring' value='on'/>
 176            <propval name='server_versmax' type='integer' value='4'/>
 177            <propval name='server_versmin' type='integer' value='2'/>
 178            <propval name='servers' type='integer' value='1024'/>
 179            <propval name='mountd_listen_backlog' type='integer' value='64'/>
 180            <propval name='mountd_max_threads' type='integer' value='16'/>
 181          </property_group>
 182         </instance>
 183 
 184         <stability value='Stable' />
 185 
 186         <template>
 187                 <common_name>
 188                         <loctext xml:lang='C'>
 189                                 NFS server
 190                         </loctext>
 191                 </common_name>
 192                 <documentation>
 193                         <manpage title='nfsd' section='1M'
 194                                 manpath='/usr/share/man' />
 195                 </documentation>
 196         </template>
 197 </service>
 198 
 199 </service_bundle>