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