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