xref: /illumos-gate/usr/src/cmd/cmd-inet/usr.lib/inetd/inetd.xml (revision 45ede40b2394db7967e59f19288fae9b62efd4aa)
1<?xml version="1.0"?>
2<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
3<!--
4 Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
5 Use is subject to license terms.
6
7 CDDL HEADER START
8
9 The contents of this file are subject to the terms of the
10 Common Development and Distribution License (the "License").
11 You may not use this file except in compliance with the License.
12
13 You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14 or http://www.opensolaris.org/os/licensing.
15 See the License for the specific language governing permissions
16 and limitations under the License.
17
18 When distributing Covered Code, include this CDDL HEADER in each
19 file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20 If applicable, add the following below this CDDL HEADER, with the
21 fields enclosed by brackets "[]" replaced with your own identifying
22 information: Portions Copyright [yyyy] [name of copyright owner]
23
24 CDDL HEADER END
25
26	NOTE:  This service manifest is not editable; its contents will
27	be overwritten by package or patch operations, including
28	operating system upgrade.  Make customizations in a different
29	file.
30
31	Service manifest for the inetd delegated restarter.
32-->
33
34<service_bundle type='manifest' name='SUNWcsr:inetd'>
35
36<service
37	name='network/inetd'
38	type='restarter'
39	version='1'>
40
41	<create_default_instance enabled='false' />
42
43	<single_instance />
44
45	<dependency
46		name='loopback'
47		grouping='require_any'
48		restart_on='error'
49		type='service'>
50		<service_fmri value='svc:/network/loopback' />
51	</dependency>
52
53	<dependency
54		name='filesystem'
55		grouping='require_all'
56		restart_on='error'
57		type='service'>
58		<service_fmri value='svc:/system/filesystem/local' />
59	</dependency>
60
61	<dependency
62		name='network'
63		grouping='optional_all'
64		restart_on='error'
65		type='service'>
66		<service_fmri value='svc:/milestone/network' />
67	</dependency>
68
69	<dependency
70		name='rpc'
71		grouping='optional_all'
72		restart_on='error'
73		type='service'>
74		<service_fmri value='svc:/network/rpc/bind' />
75	</dependency>
76
77	<!--
78	  Ensure that upgrade has the chance to run before
79	  the service to avoid gratuitous complaints about
80	  inetd.conf having been modified.
81	-->
82	<dependency
83		name='upgrade'
84		grouping='optional_all'
85		restart_on='none'
86		type='service'>
87		<service_fmri value='svc:/network/inetd-upgrade' />
88	</dependency>
89
90	<dependency
91		name='milestones'
92		grouping='require_all'
93		restart_on='none'
94		type='service'>
95		<service_fmri value='svc:/milestone/sysconfig' />
96		<service_fmri value='svc:/milestone/name-services' />
97	</dependency>
98
99	<dependent
100		name='inetd_multi-user'
101		grouping='optional_all'
102		restart_on='none'>
103		<service_fmri value='svc:/milestone/multi-user' />
104	</dependent>
105
106	<exec_method
107		type='method'
108		name='stop'
109		exec='/usr/lib/inet/inetd %m'
110		timeout_seconds='60' >
111	</exec_method>
112
113	<exec_method
114		type='method'
115		name='start'
116		exec='/usr/lib/inet/inetd %m'
117		timeout_seconds='60' >
118	</exec_method>
119
120	<exec_method
121		type='method'
122		name='refresh'
123		exec='/usr/lib/inet/inetd %m'
124		timeout_seconds='60' >
125	</exec_method>
126
127	<!--
128	   inetd's managed service property defaults. Values chosen to
129	   provide legacy inetd's behavior.
130	-->
131	<property_group
132	    name='defaults'
133	    type='application'>
134		<stability value='Evolving' />
135		<propval name='max_con_rate' type='integer' value='-1' />
136		<propval name='con_rate_offline' type='integer' value='-1' />
137		<propval name='max_copies' type='integer' value='-1' />
138		<propval name='failrate_cnt' type='integer' value='40' />
139		<propval name='failrate_interval' type='integer' value='60' />
140		<propval name='inherit_env' type='boolean' value='true' />
141		<propval name='tcp_keepalive' type='boolean' value='false' />
142		<propval name='tcp_trace' type='boolean' value='false' />
143		<propval name='tcp_wrappers' type='boolean' value='false' />
144		<propval name='bind_addr' type='astring' value='' />
145		<propval name='bind_fail_max' type='integer' value='-1' />
146		<propval name='bind_fail_interval' type='integer' value='-1' />
147		<propval name='connection_backlog' type='integer' value='10' />
148		<propval name='value_authorization' type='astring'
149			value='solaris.smf.value.inetd' />
150	</property_group>
151
152	<property_group name='general' type='framework'>
153		<!-- to manage inetd -->
154		<propval name='action_authorization' type='astring'
155			value='solaris.smf.manage.inetd' />
156		<propval name='value_authorization' type='astring'
157			value='solaris.smf.manage.inetd' />
158	</property_group>
159
160	<property_group name='config' type='application'>
161		<!-- to enable debug-class syslog messages -->
162		<propval name='debug' type='boolean' value='false' />
163		<propval name='value_authorization' type='astring'
164			value='solaris.smf.value.inetd' />
165	</property_group>
166
167	<stability value='Unstable' />
168
169	<template>
170		<common_name>
171			<loctext xml:lang='C'>inetd</loctext>
172		</common_name>
173		<description>
174			<loctext xml:lang='C'>
175inetd provides listening and spawning services for registered Internet
176services.
177			</loctext>
178		</description>
179		<documentation>
180			<manpage title='inetd' section='1M'
181				manpath='/usr/share/man' />
182			<manpage title='inetadm' section='1M'
183				manpath='/usr/share/man' />
184		</documentation>
185
186		<pg_pattern name='config' type='application' target='this'
187		    required='false'>
188			<prop_pattern name='debug' type='boolean'
189			    required='false'>
190				<description>
191					<loctext xml:lang='C'>
192Enable syslog-style debugging messages for inetd.
193					</loctext>
194				</description>
195				<cardinality min='1' max='1' />
196			</prop_pattern>
197		</pg_pattern>
198
199		<pg_pattern name='defaults' type='application'
200		    target='this' required='true'>
201			<description>
202				<loctext xml:lang='C'>
203Defaults for properties optional for inetd services.  Defaults are inherited from inetd if the property is not specified by the service.
204				</loctext>
205			</description>
206			<prop_pattern name='bind_addr' type='astring'
207			    required='false'>
208				<description>
209					<loctext xml:lang='C'>
210The address of the network interface to which the service should be bound.  An empty string value causes the service to accept connections on any network interface.
211					</loctext>
212				</description>
213				<cardinality min='1' max='1' />
214			</prop_pattern>
215			<prop_pattern name='bind_fail_interval' type='integer'
216			    required='true'>
217				<description>
218					<loctext xml:lang='C'>
219Time in seconds between a failed bind attempt and a retry.
220					</loctext>
221				</description>
222				<cardinality min='1' max='1' />
223				<values>
224					<value name='0'>
225						<description>
226							<loctext xml:lang='C'>
227No retries are attempted.
228							</loctext>
229						</description>
230					</value>
231					<value name='-1'>
232						<description>
233							<loctext xml:lang='C'>
234No retries are attempted.
235							</loctext>
236						</description>
237					</value>
238				</values>
239			</prop_pattern>
240			<prop_pattern name='bind_fail_max' type='integer'
241			    required='true'>
242				<description>
243					<loctext xml:lang='C'>
244The maxiumum nubmer of times inetd retries binding to a service's port before giving up.
245					</loctext>
246				</description>
247				<cardinality min='1' max='1' />
248				<values>
249					<value name='-1'>
250						<description>
251							<loctext xml:lang='C'>
252No retry limiting is imposed.
253							</loctext>
254						</description>
255					</value>
256				</values>
257			</prop_pattern>
258			<prop_pattern name='con_rate_offline' type='integer'
259			    required='true'>
260				<description>
261					<loctext xml:lang='C'>
262The time in seconds a service will remain offline if it exceeds its configured maximum connection rate, as defined by max_con_rate.
263					</loctext>
264				</description>
265				<cardinality min='1' max='1' />
266				<values>
267					<value name='0'>
268						<description>
269							<loctext xml:lang='C'>
270Connection rate limiting is disabled.
271							</loctext>
272						</description>
273					</value>
274					<value name='-1'>
275						<description>
276							<loctext xml:lang='C'>
277Connection rate limiting is disabled.
278							</loctext>
279						</description>
280					</value>
281				</values>
282			</prop_pattern>
283			<prop_pattern name='connection_backlog' type='integer'
284			    required='true'>
285				<description>
286					<loctext xml:lang='C'>
287The limit on the number of incoming client requests that can be queued at the listening endpoints for servers.
288					</loctext>
289				</description>
290				<cardinality min='1' max='1' />
291			</prop_pattern>
292			<prop_pattern name='failrate_cnt' type='integer'
293			    required='true'>
294				<description>
295					<loctext xml:lang='C'>
296Number of instances of a wait-type service which, in combination with the failrate_interval property, determine when to transition the service into maintenance.
297					</loctext>
298				</description>
299				<cardinality min='1' max='1' />
300				<values>
301					<value name='0'>
302						<description>
303							<loctext xml:lang='C'>
304Failure rate limiting is disabled.
305							</loctext>
306						</description>
307					</value>
308					<value name='-1'>
309						<description>
310							<loctext xml:lang='C'>
311Failure rate limiting is disabled.
312							</loctext>
313						</description>
314					</value>
315				</values>
316			</prop_pattern>
317			<prop_pattern name='failrate_interval' type='integer'
318			    required='true'>
319				<description>
320					<loctext xml:lang='C'>
321Time in seconds for interval to check for failrate_cnt failures of wait-type services which determine when to transition the service into maintenance.
322					</loctext>
323				</description>
324				<cardinality min='1' max='1' />
325				<values>
326					<value name='0'>
327						<description>
328							<loctext xml:lang='C'>
329Failure rate limiting is disabled.
330							</loctext>
331						</description>
332					</value>
333					<value name='-1'>
334						<description>
335							<loctext xml:lang='C'>
336Failure rate limiting is disabled.
337							</loctext>
338						</description>
339					</value>
340				</values>
341			</prop_pattern>
342			<prop_pattern name='inherit_env' type='boolean'
343			    required='true'>
344				<description>
345					<loctext xml:lang='C'>
346If true, pass inetd's environment on to the service's start method.  If false, the environment is cleared with the exception of SMF_*, and the environment variables from the method context.
347					</loctext>
348				</description>
349				<cardinality min='1' max='1' />
350			</prop_pattern>
351			<prop_pattern name='max_con_rate' type='integer'
352			    required='true'>
353				<description>
354					<loctext xml:lang='C'>
355The maximum allowed connection rate, in connections per second for a nowait-type service.
356					</loctext>
357				</description>
358				<units>
359					<loctext xml:lang='C'>
360connections per second
361					</loctext>
362				</units>
363				<cardinality min='1' max='1' />
364				<values>
365					<value name='0'>
366						<description>
367							<loctext xml:lang='C'>
368Connection rate limiting is disabled.
369							</loctext>
370						</description>
371					</value>
372					<value name='-1'>
373						<description>
374							<loctext xml:lang='C'>
375Connection rate limiting is disabled.
376							</loctext>
377						</description>
378					</value>
379				</values>
380			</prop_pattern>
381			<prop_pattern name='max_copies' type='integer'
382			    required='true'>
383				<description>
384					<loctext xml:lang='C'>
385Maximum number of copies of a nowait service that can run concurrently.
386					</loctext>
387				</description>
388				<cardinality min='1' max='1' />
389				<values>
390					<value name='0'>
391						<description>
392							<loctext xml:lang='C'>
393Copies limiting is disabled.
394							</loctext>
395						</description>
396					</value>
397					<value name='-1'>
398						<description>
399							<loctext xml:lang='C'>
400Copies limiting is disabled.
401							</loctext>
402						</description>
403					</value>
404				</values>
405			</prop_pattern>
406			<prop_pattern name='tcp_keepalive' type='boolean'
407			    required='true'>
408				<description>
409					<loctext xml:lang='C'>
410If true, enables periodic transmission of messages for nowait stream services.
411					</loctext>
412				</description>
413				<cardinality min='1' max='1' />
414			</prop_pattern>
415			<prop_pattern name='tcp_trace' type='boolean'
416			    required='true'>
417				<description>
418					<loctext xml:lang='C'>
419If true, enables logging of the service name, client IP address, and TCP port number for nowait services using syslog.
420					</loctext>
421				</description>
422				<cardinality min='1' max='1' />
423			</prop_pattern>
424			<prop_pattern name='tcp_wrappers' type='boolean'
425			    required='true'>
426				<description>
427					<loctext xml:lang='C'>
428If true, enables TCP wrappers for nowait stream services.
429					</loctext>
430				</description>
431				<cardinality min='1' max='1' />
432			</prop_pattern>
433		</pg_pattern>
434
435		<pg_pattern name='inetd' type='framework'
436		    target='delegate' required='true'>
437			<description>
438				<loctext xml:lang='C'>
439Basic configuration of an inetd-managed service.  Defaults are inherited from inetd if the property is not specified by the service.
440				</loctext>
441			</description>
442			<prop_pattern name='bind_addr' type='astring'
443			    required='false'>
444				<description>
445					<loctext xml:lang='C'>
446The address of the network interface to which the service should be bound.  An empty string value causes the service to accept connections on any network interface.
447					</loctext>
448				</description>
449				<cardinality min='1' max='1' />
450			</prop_pattern>
451			<prop_pattern name='bind_fail_interval' type='integer'
452			    required='false'>
453				<description>
454					<loctext xml:lang='C'>
455Time in seconds between a failed bind attempt and a retry.
456					</loctext>
457				</description>
458				<cardinality min='1' max='1' />
459				<values>
460					<value name='0'>
461						<description>
462							<loctext xml:lang='C'>
463No retries are attempted.
464							</loctext>
465						</description>
466					</value>
467					<value name='-1'>
468						<description>
469							<loctext xml:lang='C'>
470No retries are attempted.
471							</loctext>
472						</description>
473					</value>
474				</values>
475			</prop_pattern>
476			<prop_pattern name='bind_fail_max' type='integer'
477			    required='false'>
478				<description>
479					<loctext xml:lang='C'>
480The maxiumum nubmer of times inetd retries binding to a service's port before giving up.
481					</loctext>
482				</description>
483				<cardinality min='1' max='1' />
484				<values>
485					<value name='-1'>
486						<description>
487							<loctext xml:lang='C'>
488No retry limiting is imposed.
489							</loctext>
490						</description>
491					</value>
492				</values>
493			</prop_pattern>
494			<prop_pattern name='con_rate_offline' type='integer'
495			    required='false'>
496				<description>
497					<loctext xml:lang='C'>
498The time in seconds a service will remain offline if it exceeds its configured maximum connection rate, as defined by max_con_rate.
499					</loctext>
500				</description>
501				<cardinality min='1' max='1' />
502				<values>
503					<value name='0'>
504						<description>
505							<loctext xml:lang='C'>
506Connection rate limiting is disabled.
507							</loctext>
508						</description>
509					</value>
510					<value name='-1'>
511						<description>
512							<loctext xml:lang='C'>
513Connection rate limiting is disabled.
514							</loctext>
515						</description>
516					</value>
517				</values>
518			</prop_pattern>
519			<prop_pattern name='connection_backlog' type='integer'
520			    required='false'>
521				<description>
522					<loctext xml:lang='C'>
523The limit on the number of incoming client requests that can be queued at the listening endpoints for servers.
524					</loctext>
525				</description>
526				<cardinality min='1' max='1' />
527			</prop_pattern>
528			<prop_pattern name='endpoint_type' type='astring'
529			    required='true'>
530				<description>
531					<loctext xml:lang='C'>
532The type of socket used by the service.
533					</loctext>
534				</description>
535				<cardinality min='1' max='1' />
536				<constraints>
537					<value name='tli'>
538						<description>
539							<loctext xml:lang='C'>
540TLI endpoint
541							</loctext>
542						</description>
543					</value>
544					<value name='stream'>
545						<description>
546							<loctext xml:lang='C'>
547stream socket
548							</loctext>
549						</description>
550					</value>
551					<value name='dgram'>
552						<description>
553							<loctext xml:lang='C'>
554datagram socket
555							</loctext>
556						</description>
557					</value>
558					<value name='raw'>
559						<description>
560							<loctext xml:lang='C'>
561raw socket
562							</loctext>
563						</description>
564					</value>
565					<value name='seqpacket'>
566						<description>
567							<loctext xml:lang='C'>
568sequenced packet socket
569							</loctext>
570						</description>
571					</value>
572				</constraints>
573				<choices>
574					<value name='dgram' />
575					<value name='stream' />
576					<value name='tli' />
577				</choices>
578			</prop_pattern>
579			<prop_pattern name='failrate_cnt' type='integer'
580			    required='false'>
581				<description>
582					<loctext xml:lang='C'>
583Number of instances of a wait-type service which, in combination with the failrate_interval property, determine when to transition the service into maintenance.
584					</loctext>
585				</description>
586				<cardinality min='1' max='1' />
587				<values>
588					<value name='0'>
589						<description>
590							<loctext xml:lang='C'>
591Failure rate limiting is disabled.
592							</loctext>
593						</description>
594					</value>
595					<value name='-1'>
596						<description>
597							<loctext xml:lang='C'>
598Failure rate limiting is disabled.
599							</loctext>
600						</description>
601					</value>
602				</values>
603			</prop_pattern>
604			<prop_pattern name='failrate_interval' type='integer'
605			    required='false'>
606				<description>
607					<loctext xml:lang='C'>
608Time in seconds for interval to check for failrate_cnt failures of wait-type services which determine when to transition the service into maintenance.
609					</loctext>
610				</description>
611				<cardinality min='1' max='1' />
612				<values>
613					<value name='0'>
614						<description>
615							<loctext xml:lang='C'>
616Failure rate limiting is disabled.
617							</loctext>
618						</description>
619					</value>
620					<value name='-1'>
621						<description>
622							<loctext xml:lang='C'>
623Failure rate limiting is disabled.
624							</loctext>
625						</description>
626					</value>
627				</values>
628			</prop_pattern>
629			<prop_pattern name='inherit_env' type='boolean'
630			    required='false'>
631				<description>
632					<loctext xml:lang='C'>
633If true, pass inetd's environment on to the service's start method.  If false, the environment is cleared with the exception of SMF_*, and the environment variables from the method context.
634					</loctext>
635				</description>
636				<cardinality min='1' max='1' />
637			</prop_pattern>
638			<prop_pattern name='isrpc' type='boolean'
639			    required='false'>
640				<description>
641					<loctext xml:lang='C'>
642If true, this is an RPC service.
643					</loctext>
644				</description>
645				<cardinality min='1' max='1' />
646			</prop_pattern>
647			<prop_pattern name='max_con_rate' type='integer'
648			    required='false'>
649				<description>
650					<loctext xml:lang='C'>
651The maximum allowed connection rate, in connections per second for a nowait-type service.
652					</loctext>
653				</description>
654				<units>
655					<loctext xml:lang='C'>
656connections per second
657					</loctext>
658				</units>
659				<cardinality min='1' max='1' />
660				<values>
661					<value name='0'>
662						<description>
663							<loctext xml:lang='C'>
664Connection rate limiting is disabled.
665							</loctext>
666						</description>
667					</value>
668					<value name='-1'>
669						<description>
670							<loctext xml:lang='C'>
671Connection rate limiting is disabled.
672							</loctext>
673						</description>
674					</value>
675				</values>
676			</prop_pattern>
677			<prop_pattern name='max_copies' type='integer'
678			    required='false'>
679				<description>
680					<loctext xml:lang='C'>
681Maximum number of copies of a nowait service that can run concurrently.
682					</loctext>
683				</description>
684				<cardinality min='1' max='1' />
685				<values>
686					<value name='0'>
687						<description>
688							<loctext xml:lang='C'>
689Copies limiting is disabled.
690							</loctext>
691						</description>
692					</value>
693					<value name='-1'>
694						<description>
695							<loctext xml:lang='C'>
696Copies limiting is disabled.
697							</loctext>
698						</description>
699					</value>
700				</values>
701			</prop_pattern>
702			<prop_pattern name='name' type='astring'
703			    required='true'>
704				<description>
705					<loctext xml:lang='C'>
706Can be set to a service name understood by getservbyname(3SOCKET), or if isrpc is true, a service name understood by getrpcbyname(3NSL) or a valid RPC program number.
707					</loctext>
708				</description>
709				<cardinality min='1' max='1' />
710			</prop_pattern>
711			<prop_pattern name='proto' type='astring'
712			    required='true'>
713				<description>
714					<loctext xml:lang='C'>
715A list of protocols supported by the service.
716					</loctext>
717				</description>
718				<choices>
719					<value name='tcp' />
720					<value name='tcp6' />
721					<value name='tcp6only' />
722					<value name='udp' />
723					<value name='udp6' />
724					<value name='udp6only' />
725				</choices>
726			</prop_pattern>
727			<prop_pattern name='rpc_low_version' type='integer'
728			    required='false'>
729				<description>
730					<loctext xml:lang='C'>
731Lowest supported RPC version.  Required when isrpc is set to true.
732					</loctext>
733				</description>
734				<cardinality min='1' max='1' />
735			</prop_pattern>
736			<prop_pattern name='rpc_high_version' type='integer'
737			    required='false'>
738				<description>
739					<loctext xml:lang='C'>
740Highest supported RPC version.  Required when isrpc is set to true.
741					</loctext>
742				</description>
743				<cardinality min='1' max='1' />
744			</prop_pattern>
745			<prop_pattern name='tcp_keepalive' type='boolean'
746			    required='false'>
747				<description>
748					<loctext xml:lang='C'>
749If true, enables periodic transmission of messages for nowait stream services.
750					</loctext>
751				</description>
752				<cardinality min='1' max='1' />
753			</prop_pattern>
754			<prop_pattern name='tcp_trace' type='boolean'
755			    required='false'>
756				<description>
757					<loctext xml:lang='C'>
758If true, enables logging of the service name, client IP address, and TCP port number for nowait services using syslog.
759					</loctext>
760				</description>
761				<cardinality min='1' max='1' />
762			</prop_pattern>
763			<prop_pattern name='tcp_wrappers' type='boolean'
764			    required='false'>
765				<description>
766					<loctext xml:lang='C'>
767If true, enables TCP wrappers for nowait stream services.
768					</loctext>
769				</description>
770				<cardinality min='1' max='1' />
771			</prop_pattern>
772			<prop_pattern name='wait' type='boolean'
773			    required='false'>
774				<description>
775					<loctext xml:lang='C'>
776If true, this is a wait-type service.  For wait-type services, the inetd_start method will take over listening duties on the service's bound endpoint and inetd will wait for it to exit before resuming listening.
777					</loctext>
778				</description>
779				<cardinality min='1' max='1' />
780			</prop_pattern>
781		</pg_pattern>
782
783		<pg_pattern type='method' target='delegate' required='false'>
784			<description>
785				<loctext xml:lang='C'>
786A method defines how inetd interacts with its services.  inetd_start is executed to handle a connection.  inetd_offline is executed when the service is taken offline.  inetd_online is executed when the service is taken from offline to online.  inetd_disable is executed when the service is disabled.  inetd_refresh is executed when the service is refreshed.
787				</loctext>
788			</description>
789
790			<prop_pattern name='exec' type='astring'
791			    required='true'>
792				<common_name>
793					<loctext xml:lang='C'>
794method executable
795					</loctext>
796				</common_name>
797				<description>
798					<loctext xml:lang='C'>
799The method executable may be a script, program, or keyword.
800					</loctext>
801				</description>
802				<cardinality min='1' max='1' />
803				<values>
804					<value name=':true'>
805						<description>
806							<loctext xml:lang='C'>
807Always returns SMF_EXIT_OK. This token should be used for methods that are required by the restarter but which are unnecessary for the particular service implementation.
808							</loctext>
809						</description>
810					</value>
811					<value name=':kill [-signal]'>
812						<description>
813							<loctext xml:lang='C'>
814Sends the specified signal, which is SIGTERM by default, to all processes in the primary instance contract. Always returns SMF_EXIT_OK. This token should be used to replace common pkill invocations.
815
816							</loctext>
817						</description>
818					</value>
819					<value name=':kill_process [-signal]'>
820						<description>
821							<loctext xml:lang='C'>
822For wait-type services, send the specified signal, which is SIGTERM by default, to the parent process of the wait-type serviće´s start method.
823							</loctext>
824						</description>
825					</value>
826				</values>
827				<choices>
828					<include_values type='values' />
829				</choices>
830			</prop_pattern>
831
832			<prop_pattern name='type' type='astring'
833			    required='true'>
834				<description>
835					<loctext xml:lang='C'>
836A method may only be of type method.
837					</loctext>
838				</description>
839				<cardinality min='1' max='1' />
840				<constraints>
841					<value name='method' />
842				</constraints>
843			</prop_pattern>
844
845			<prop_pattern name='timeout_seconds' type='count'
846			    required='true'>
847				<description>
848					<loctext xml:lang='C'>
849Number of seconds before the method is considered unresponsive.  After the method timeout expires, the method will be killed.
850					</loctext>
851				</description>
852				<cardinality min='1' max='1' />
853				<values>
854					<value name='0'>
855						<common_name>
856							<loctext xml:lang='C'>
857infinite
858							</loctext>
859						</common_name>
860						<description>
861							<loctext xml:lang='C'>
862This method will never time out.
863							</loctext>
864						</description>
865					</value>
866					<value name='-1'>
867						<common_name>
868							<loctext xml:lang='C'>
869infinite (legacy)
870							</loctext>
871						</common_name>
872						<description>
873							<loctext xml:lang='C'>
874This method will never time out.  0 is the preferred value.
875							</loctext>
876						</description>
877					</value>
878				</values>
879			</prop_pattern>
880
881			<!-- method_context direct properties -->
882			<prop_pattern name='working_directory' type='astring'
883			    required='false'>
884				<description>
885					<loctext xml:lang='C'>
886The working directory to launch the method from.  ":default" can be used as a token to indicate the home directory of the user specified by the credential or profile.
887
888					</loctext>
889				</description>
890				<cardinality min='1' max='1' />
891			</prop_pattern>
892			<prop_pattern name='project' type='astring'
893			    required='false'>
894				<description>
895					<loctext xml:lang='C'>
896The project ID in numeric or text form.  :default can be used as a token to indicate a project identified by getdefaultproj(3PROJECT) for the user whose uid is used to launch the method.
897					</loctext>
898				</description>
899				<cardinality min='1' max='1' />
900			</prop_pattern>
901			<prop_pattern name='resource_pool' type='astring'
902			    required='false'>
903				<common_name>
904					<loctext xml:lang='C'>
905method context resource pool
906					</loctext>
907				</common_name>
908				<description>
909					<loctext xml:lang='C'>
910The resource pool name on which to launch the method.  :default can be used
911as a token to indicate the pool specified in the project(4) entry given in
912the project attribute.
913					</loctext>
914				</description>
915				<cardinality min='1' max='1' />
916			</prop_pattern>
917
918			<!-- method_credential properties -->
919			<prop_pattern name='user' type='astring'
920			    required='false'>
921				<common_name>
922					<loctext xml:lang='C'>
923method credential user
924					</loctext>
925				</common_name>
926				<description>
927					<loctext xml:lang='C'>
928The user ID in numeric or text form.
929					</loctext>
930				</description>
931				<cardinality min='1' max='1' />
932			</prop_pattern>
933			<prop_pattern name='group' type='astring'
934			    required='false'>
935				<common_name>
936					<loctext xml:lang='C'>
937method credential group
938					</loctext>
939				</common_name>
940				<description>
941					<loctext xml:lang='C'>
942The group ID in numeric or text form.
943					</loctext>
944				</description>
945				<cardinality min='1' max='1' />
946			</prop_pattern>
947			<prop_pattern name='supp_groups' type='astring'
948			    required='false'>
949				<common_name>
950					<loctext xml:lang='C'>
951method credential supplemental groups
952					</loctext>
953				</common_name>
954				<description>
955					<loctext xml:lang='C'>
956An optional string that specifies the supplemental group memberships by ID,
957in numeric or text form.
958					</loctext>
959				</description>
960				<cardinality min='1' max='1' />
961				<internal_separators>,</internal_separators>
962			</prop_pattern>
963			<prop_pattern name='privileges' type='astring'
964			    required='false'>
965				<common_name>
966					<loctext xml:lang='C'>
967method credential privileges
968					</loctext>
969				</common_name>
970				<description>
971					<loctext xml:lang='C'>
972An optional string specifying the privilege set as defined in privileges(5).
973					</loctext>
974				</description>
975				<cardinality min='1' max='1' />
976				<internal_separators>,</internal_separators>
977			</prop_pattern>
978			<prop_pattern name='limit_privileges' type='astring'
979			    required='false'>
980				<common_name>
981					<loctext xml:lang='C'>
982method credential limit privilege set
983					</loctext>
984				</common_name>
985				<description>
986					<loctext xml:lang='C'>
987An optional string specifying the limit privilege set as defined in
988privileges(5).
989					</loctext>
990				</description>
991				<cardinality min='1' max='1' />
992				<internal_separators>,</internal_separators>
993			</prop_pattern>
994
995			<!-- method_profile properties -->
996			<prop_pattern name='use_profile' type='boolean'
997			    required='false'>
998				<description>
999					<loctext xml:lang='C'>
1000A boolean that specifies whether the profile should be used instead of the
1001user, group, privileges, and limit_privileges properties.
1002					</loctext>
1003				</description>
1004				<cardinality min='1' max='1' />
1005			</prop_pattern>
1006			<prop_pattern name='profile' type='astring'
1007			    required='false'>
1008				<common_name>
1009					<loctext xml:lang='C'>
1010method profile RBAC profile specification
1011					</loctext>
1012				</common_name>
1013				<description>
1014					<loctext xml:lang='C'>
1015The name of an RBAC (role-based access control) profile which, along with the
1016method executable, identifies an entry in exec_attr(4).
1017					</loctext>
1018				</description>
1019				<cardinality min='1' max='1' />
1020			</prop_pattern>
1021
1022			<!-- method_environment properties -->
1023			<prop_pattern name='environment' type='astring'
1024			    required='false'>
1025				<common_name>
1026					<loctext xml:lang='C'>
1027method environment variables
1028					</loctext>
1029				</common_name>
1030				<description>
1031					<loctext xml:lang='C'>
1032Environment variables to insert into the environment of the method, in the
1033form of a number of NAME=value strings.
1034					</loctext>
1035				</description>
1036			</prop_pattern>
1037		</pg_pattern>
1038
1039                <pg_pattern name='restarter' type='framework'
1040                    target='delegate' required='false'>
1041                        <description>
1042                                <loctext xml:lang='C'>
1043Communicate restarter-set status of the service.
1044                                </loctext>
1045                        </description>
1046
1047                        <prop_pattern name='auxiliary_state' type='astring'
1048                            required='false'>
1049                                <description>
1050                                        <loctext xml:lang='C'>
1051Additional information about why a service is in the current state.  Unused by inetd.
1052                                        </loctext>
1053                                </description>
1054                                <visibility value='hidden' />
1055                                <cardinality min='1' max='1' />
1056                        </prop_pattern>
1057                        <prop_pattern name='auxiliary_fmri' type='astring'
1058                            required='false'>
1059                                <description>
1060                                        <loctext xml:lang='C'>
1061Auxiliary fmri information for service state diagnosis.
1062                                        </loctext>
1063                                </description>
1064                                <visibility value='hidden' />
1065                        </prop_pattern>
1066                        <prop_pattern name='state_timestamp' type='time'
1067                            required='false'>
1068                                <description>
1069                                        <loctext xml:lang='C'>
1070Time the current state was reached.
1071                                        </loctext>
1072                                </description>
1073                                <visibility value='readonly' />
1074                                <cardinality min='1' max='1' />
1075                        </prop_pattern>
1076                        <prop_pattern name='state' type='astring'
1077                            required='false'>
1078                                <description>
1079                                        <loctext xml:lang='C'>
1080The current state of this service instance.
1081                                        </loctext>
1082                                </description>
1083                                <visibility value='readonly' />
1084                                <cardinality min='1' max='1' />
1085                                <constraints>
1086                                        <value name='online'>
1087                                                <description>
1088                                                        <loctext xml:lang='C'>
1089The instance is handling new network requests and might have existing connections alive.
1090                                                        </loctext>
1091                                                </description>
1092                                        </value>
1093                                        <value name='offline'>
1094                                                <description>
1095                                                        <loctext xml:lang='C'>
1096Connections might be active, but no new requests are being handled.  An instance may be offline because its dependencies are unsatisfied, the service has exceeded its configured connection rate limit, the service as reached its allowed number of active connections, or inetd failed to listen on behalf of the service on all its protocols.
1097                                                        </loctext>
1098                                                </description>
1099                                        </value>
1100                                        <value name='uninitialized'>
1101                                                <description>
1102                                                        <loctext xml:lang='C'>
1103inetd has yet to process this instance, or the inetd service has not yet been started by svc.startd.
1104                                                        </loctext>
1105                                                </description>
1106                                        </value>
1107                                        <value name='degraded'>
1108                                                <description>
1109                                                        <loctext xml:lang='C'>
1110The instance was able to listen and process requests for some, but not all, of the protocoals specified for the instance.  Existing network connections might be active.
1111                                                        </loctext>
1112                                                </description>
1113                                        </value>
1114                                        <value name='disabled'>
1115                                                <description>
1116                                                        <loctext xml:lang='C'>
1117The instance is disabled, is not accepting new connections, and has none active.
1118                                                        </loctext>
1119                                                </description>
1120                                        </value>
1121                                        <value name='maintenance'>
1122                                                <description>
1123                                                        <loctext xml:lang='C'>
1124The instance is either malfunctioning and needs administrator attention, or an administrator has requested the instance enter this state.
1125                                                        </loctext>
1126                                                </description>
1127                                        </value>
1128                                </constraints>
1129                        </prop_pattern>
1130			<prop_pattern name='next_state' type='astring'
1131			    required='false'>
1132				<description>
1133					<loctext xml:lang='C'>
1134The next expected state of this instance.
1135					</loctext>
1136				</description>
1137				<visibility value='readonly' />
1138				<cardinality min='1' max='1' />
1139				<constraints>
1140					<value name='online'>
1141						<description>
1142							<loctext xml:lang='C'>
1143The service is being started or refreshed, and will soon be online and running.  This transition may fail and the instance may end up in offline or maintenance instead.
1144							</loctext>
1145						</description>
1146					</value>
1147					<value name='offline'>
1148						<description>
1149							<loctext xml:lang='C'>
1150The instance has temporarily suspended accepting new network requests due to dependencies or reaching a connection or failure threshold.  Most instances will leave this state once their dependencies are satisfied or the threshold is no longer exceeded.
1151							</loctext>
1152						</description>
1153					</value>
1154					<value name='degraded'>
1155						<description>
1156							<loctext xml:lang='C'>
1157The instance was able to listen and process requests for some, but not all, of the protocoals specified for the instance.  Existing network connections might be active.
1158							</loctext>
1159						</description>
1160					</value>
1161					<value name='disabled'>
1162						<description>
1163							<loctext xml:lang='C'>
1164The instance will be disabled, will not be accepting new connections, and will have none active.
1165							</loctext>
1166						</description>
1167					</value>
1168					<value name='maintenance'>
1169						<description>
1170							<loctext xml:lang='C'>
1171The instance will be in maintenance, and administrative action will be required to restore the instance to offline and subsequent states.
1172							</loctext>
1173						</description>
1174					</value>
1175				</constraints>
1176			</prop_pattern>
1177		</pg_pattern>
1178	</template>
1179</service>
1180
1181</service_bundle>
1182