xref: /illumos-gate/usr/src/cmd/svc/milestone/restarter.xml (revision 28b6fd27d5ff75fe6fdeb119a21575b0652a7e70)
1<?xml version="1.0"?>
2<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
3<!--
4 Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
5
6 CDDL HEADER START
7
8 The contents of this file are subject to the terms of the
9 Common Development and Distribution License (the "License").
10 You may not use this file except in compliance with the License.
11
12 You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13 or http://www.opensolaris.org/os/licensing.
14 See the License for the specific language governing permissions
15 and limitations under the License.
16
17 When distributing Covered Code, include this CDDL HEADER in each
18 file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19 If applicable, add the following below this CDDL HEADER, with the
20 fields enclosed by brackets "[]" replaced with your own identifying
21 information: Portions Copyright [yyyy] [name of copyright owner]
22
23 CDDL HEADER END
24
25	NOTE:  This service manifest is not editable; its contents will
26	be overwritten by package or patch operations, including
27	operating system upgrade.  Make customizations in a different
28	file.
29-->
30
31<service_bundle type='manifest' name='SUNWcsr:restarter'>
32
33<service
34	name='system/svc/restarter'
35	type='restarter'
36	version='1'>
37
38	<!--
39	    svc.startd manages itself.  However, this manifest allows
40	    us to set non-persistent properties before filesystems
41	    have been mounted r/w.
42	-->
43
44	<create_default_instance enabled='true' />
45
46	<single_instance/>
47
48	<!--
49	    The restarter is actually started by init, so these methods are
50	    ignored.  However, they are required by definition and are
51	    included here to avoid spurious validation errors.
52	-->
53	<exec_method
54		type='method'
55		name='start'
56		exec=':true'
57		timeout_seconds='0' />
58
59	<exec_method
60		type='method'
61		name='stop'
62		exec=':true'
63		timeout_seconds='0' />
64
65	<stability value='Unstable' />
66
67	<template>
68		<common_name>
69			<loctext xml:lang='C'>
70master restarter
71			</loctext>
72		</common_name>
73		<documentation>
74			<manpage title='svc.startd' section='1M'
75			    manpath='/usr/share/man' />
76			<manpage title='smf_method' section='5'
77			    manpath='/usr/share/man' />
78			<manpage title='smf' section='5'
79			    manpath='/usr/share/man' />
80		</documentation>
81
82		<!--
83		    Much of the restarter pg is populated by librestart, but
84		    because svc.startd augments the property group, we choose
85		    to define the entire property group as restarter-specific
86		    rather than define it globally and miss some of the
87                    properties.  Templates does not currently provide a way
88                    to have multiple entities 'own' and describe a property
89                    group.
90		-->
91		<pg_pattern name='restarter' type='framework'
92		    target='delegate' required='false'>
93			<description>
94				<loctext xml:lang='C'>
95Communicate restarter-set status of the service.
96				</loctext>
97			</description>
98			<prop_pattern name='alt_logfile' type='astring'
99			    required='false'>
100				<description>
101					<loctext xml:lang='C'>
102The logfile for restarter actions on this service and any direct output from its methods which occurred before the /var filesystem was available.
103					</loctext>
104				</description>
105				<visibility value='readonly'/>
106				<cardinality min='1' max='1'/>
107			</prop_pattern>
108			<prop_pattern name='logfile' type='astring'
109			    required='false'>
110				<description>
111					<loctext xml:lang='C'>
112The logfile for restarter actions on this service and any direct output from its methods.
113					</loctext>
114				</description>
115				<visibility value='readonly'/>
116				<cardinality min='1' max='1'/>
117			</prop_pattern>
118			<prop_pattern name='contract' type='count'
119			    required='false'>
120				<description>
121					<loctext xml:lang='C'>
122Primary process contract for a 'contract' or 'child' service.
123					</loctext>
124				</description>
125				<visibility value='readonly'/>
126				<cardinality min='1' max='1'/>
127			</prop_pattern>
128			<prop_pattern name='start_pid' type='count'
129			    required='false'>
130				<description>
131					<loctext xml:lang='C'>
132PID last launched as the start method for this service.
133					</loctext>
134				</description>
135				<visibility value='readonly'/>
136				<cardinality min='1' max='1'/>
137			</prop_pattern>
138			<prop_pattern name='start_method_timestamp' type='time'
139			    required='false'>
140				<description>
141					<loctext xml:lang='C'>
142Time the start method was last run.
143					</loctext>
144				</description>
145				<visibility value='readonly'/>
146				<cardinality min='1' max='1'/>
147			</prop_pattern>
148			<prop_pattern name='auxiliary_state' type='astring'
149			    required='false'>
150				<description>
151					<loctext xml:lang='C'>
152Restarter-set auxiliary information about the current state.
153					</loctext>
154				</description>
155				<visibility value='readonly'/>
156				<cardinality min='1' max='1'/>
157			</prop_pattern>
158			<prop_pattern name='auxiliary_fmri' type='astring'
159			    required='false'>
160				<description>
161					<loctext xml:lang='C'>
162Auxiliary fmri information for service state diagnosis.
163					</loctext>
164				</description>
165				<visibility value='hidden' />
166			</prop_pattern>
167			<prop_pattern name='state_timestamp' type='time'
168			    required='false'>
169				<description>
170					<loctext xml:lang='C'>
171Time the current state was reached.
172					</loctext>
173				</description>
174				<visibility value='readonly'/>
175				<cardinality min='1' max='1'/>
176			</prop_pattern>
177			<prop_pattern name='state' type='astring'
178			    required='false'>
179				<description>
180					<loctext xml:lang='C'>
181The current state of this service instance.
182					</loctext>
183				</description>
184				<visibility value='readonly'/>
185				<cardinality min='1' max='1'/>
186				<constraints>
187					<value name="online">
188						<description>
189							<loctext xml:lang='C'>
190The instance is online and running.
191							</loctext>
192						</description>
193					</value>
194					<value name="offline">
195						<description>
196							<loctext xml:lang='C'>
197The instance is enabled, but not yet running or available to run.  The most common reason for service instances to be in this state is because one or more of their dependencies are not satisfied.
198							</loctext>
199						</description>
200					</value>
201					<value name="uninitialized">
202						<description>
203							<loctext xml:lang='C'>
204The initial state for all instances before svc.startd has had a chance to evaluate on them.  Instances are in this state when their restarter has not yet started.
205							</loctext>
206						</description>
207					</value>
208					<value name="degraded">
209						<description>
210							<loctext xml:lang='C'>
211The instance is enabled and running or available to run. The instance, however, is functioning at a limited capacity in comparison to normal operation.
212							</loctext>
213						</description>
214					</value>
215					<value name="disabled">
216						<description>
217							<loctext xml:lang='C'>
218The instance is disabled.
219							</loctext>
220						</description>
221					</value>
222					<value name="maintenance">
223						<description>
224							<loctext xml:lang='C'>
225The instance is enabled, but not able to run.  Administrative action is required to restore the instance to offline and subsequent states.
226							</loctext>
227						</description>
228					</value>
229				</constraints>
230			</prop_pattern>
231			<prop_pattern name='next_state' type='astring'
232			    required='false'>
233				<description>
234					<loctext xml:lang='C'>
235The next expected state of this instance.
236					</loctext>
237				</description>
238				<visibility value='readonly'/>
239				<cardinality min='1' max='1'/>
240				<constraints>
241					<value name="online">
242						<description>
243							<loctext xml:lang='C'>
244The instance is being started, and will soon be online and running.  This transition may fail and the instance may end up in offiline or maintenance instead.
245							</loctext>
246						</description>
247					</value>
248					<value name="offline">
249						<description>
250							<loctext xml:lang='C'>
251The instance has been temporarily stopped.  Most instances will leave this state once their dependencies are satisfied.
252							</loctext>
253						</description>
254					</value>
255					<value name="degraded">
256						<description>
257							<loctext xml:lang='C'>
258The instance will be enabled and availble to run, although in a limited capacity.
259							</loctext>
260						</description>
261					</value>
262					<value name="disabled">
263						<description>
264							<loctext xml:lang='C'>
265The instance will be disabled.
266							</loctext>
267						</description>
268					</value>
269					<value name="maintenance">
270						<description>
271							<loctext xml:lang='C'>
272The instance will be in maintenance, and administrative action will be required to restore the instance to offline and subsequent states.
273							</loctext>
274						</description>
275					</value>
276					<value name="none">
277						<description>
278							<loctext xml:lang='C'>
279The instance is not currently transitioning between states.
280							</loctext>
281						</description>
282					</value>
283				</constraints>
284			</prop_pattern>
285		</pg_pattern>
286
287		<pg_pattern name='options' type='application'
288		    target='this' required='false'>
289			<description>
290				<loctext xml:lang='C'>
291Specify options for the svc.startd restarter.
292				</loctext>
293			</description>
294
295			<prop_pattern name='boot_messages' type='astring'
296			    required='false'>
297				<description>
298					<loctext xml:lang='C'>
299Define verbosity of messages to print to the console during boot.
300					</loctext>
301				</description>
302				<cardinality min='1' max='1'/>
303				<constraints>
304				<value name='quiet'>
305					<description>
306						<loctext xml:lang='C'>
307Issue console messages only on service failures.
308						</loctext>
309					</description>
310				</value>
311				<value name='verbose'>
312					<description>
313						<loctext xml:lang='C'>
314Print a message per service started to indicate success or failure.
315						</loctext>
316					</description>
317				</value>
318				</constraints>
319				<choices>
320					<include_values type='constraints'/>
321				</choices>
322			</prop_pattern>
323
324			<prop_pattern name='logging' type='astring'
325			    required='false'>
326				<description>
327					<loctext xml:lang='C'>
328Control the level of global service logging for svc.startd.
329					</loctext>
330				</description>
331				<cardinality min='1' max='1'/>
332				<constraints>
333				<value name='quiet'>
334					<description>
335						<loctext xml:lang='C'>
336Send error messages requiring administrative intervention to console, syslog, and svc.startd's global logfile.
337						</loctext>
338					</description>
339				</value>
340				<value name='verbose'>
341					<description>
342						<loctext xml:lang='C'>
343Sends a message per service started to the console, error messages requiring administrative intervention to console, syslog, and svc.startd's global logfile, and information about errors which do not require intervention to the logfile.
344						</loctext>
345					</description>
346				</value>
347				<value name='debug'>
348					<description>
349						<loctext xml:lang='C'>
350Send debug messages to svc.startd's global logfile, error messages requiring administrative intervention to the console, syslog, and the logfile, and a message per service started to the console.
351						</loctext>
352					</description>
353				</value>
354				</constraints>
355				<choices>
356					<include_values type='constraints'/>
357				</choices>
358			</prop_pattern>
359
360			<prop_pattern name='milestone' type='astring'
361			    required='false'>
362				<description>
363					<loctext xml:lang='C'>
364An FRMI which defines the milestone used as the default boot level.
365					</loctext>
366				</description>
367				<cardinality min='1' max='1'/>
368				<constraints>
369				<value
370				    name='svc:/milestone/single-user:default'>
371				</value>
372				<value
373				    name='svc:/milestone/multi-user:default'>
374				</value>
375				<value name=
376				    'svc:/milestone/multi-user-server:default'>
377				</value>
378				<value name='all'>
379					<description>
380						<loctext xml:lang='C'>
381Start all enabled services.
382						</loctext>
383					</description>
384				</value>
385				<value name='none'>
386					<description>
387						<loctext xml:lang='C'>
388Start no services.
389						</loctext>
390					</description>
391				</value>
392				</constraints>
393			</prop_pattern>
394			<prop_pattern name='info_event_all' type='boolean'
395			    required='false'>
396				<description>
397					<loctext xml:lang='C'>
398Override notification parameters and raise Information Events on all state transitions
399					</loctext>
400				</description>
401				<visibility value='hidden' />
402			</prop_pattern>
403		</pg_pattern>
404
405		<pg_pattern name='system' type='framework'
406		    target='this' required='false'>
407			<prop_pattern name='reconfigure' type='boolean'
408			    required='false'>
409				<description>
410					<loctext xml:lang='C'>
411Indicates that a reconfiguration reboot has been requested.
412					</loctext>
413				</description>
414				<visibility value='readonly'/>
415				<cardinality min='1' max='1'/>
416			</prop_pattern>
417		</pg_pattern>
418
419		<pg_pattern name='startd' type='framework'
420		    target='delegate' required='false'>
421			<description>
422				<loctext xml:lang='C'>
423Information about how a service instance is managed by svc.startd, which is supplied by the service author, sometimes modified by the administrator.
424				</loctext>
425			</description>
426
427			<prop_pattern name='duration' type='astring'
428			    required='false'>
429				<description>
430					<loctext xml:lang='C'>
431Defines the service's model.
432					</loctext>
433				</description>
434				<cardinality min='1' max='1'/>
435				<constraints>
436				<value name='contract'>
437					<description>
438						<loctext xml:lang='C'>
439A standard system daemon, which runs forever to provide a service.  It is not considered online until the start method process exits, though child processes are monitored for errors.
440						</loctext>
441					</description>
442				</value>
443				<value name='transient'>
444					<description>
445						<loctext xml:lang='C'>
446The service is online as soon as its start method returns -- child processes are not monitored.
447						</loctext>
448					</description>
449				</value>
450				<value name='child'>
451					<description>
452						<loctext xml:lang='C'>
453A service which runs for the lifetime of the child process, and is restarted when that process exits.
454						</loctext>
455					</description>
456				</value>
457				</constraints>
458				<choices>
459					<include_values type='constraints'/>
460				</choices>
461			</prop_pattern>
462			<prop_pattern name='ignore_error' type='astring'
463			    required='false'>
464				<description>
465					<loctext xml:lang='C'>
466A list of events which should not be considered service errors by svc.startd.
467					</loctext>
468				</description>
469				<cardinality min='1' max='1'/>
470				<!--
471				    We won't recommend this as a choice since
472				    it's only here to work around the fact
473				    that startd defines this as a single
474				    value rather than a value list *and*
475				    templates doesn't currently take care
476				    of assembling separately defined
477				    values with the defined internal separator.
478				-->
479				<values>
480				<value name='signal,core'>
481					<description>
482						<loctext xml:lang='C'>
483svc.startd should ignore coredumps and signals sent from outside the service.
484						</loctext>
485					</description>
486				</value>
487				</values>
488				<choices>
489				<value name='core'>
490					<description>
491						<loctext xml:lang='C'>
492svc.startd should ignore coredumps from subprocesses.
493						</loctext>
494					</description>
495				</value>
496				<value name='signal'>
497					<description>
498						<loctext xml:lang='C'>
499svc.startd should ignore signals sent from outside the service.
500						</loctext>
501					</description>
502				</value>
503				<value name='core,signal'>
504					<description>
505						<loctext xml:lang='C'>
506svc.startd should ignore coredumps and signals sent from outside the service.
507						</loctext>
508					</description>
509				</value>
510				</choices>
511			</prop_pattern>
512			<prop_pattern name='need_session' type='boolean'
513			    required='false'>
514				<description>
515					<loctext xml:lang='C'>
516The instance should be launched in its own session per setpgrp(2).
517					</loctext>
518				</description>
519				<cardinality min='1' max='1'/>
520			</prop_pattern>
521			<prop_pattern name='utmpx_prefix' type='astring'
522			    required='false'>
523				<description>
524					<loctext xml:lang='C'>
525The instance requires that svc.startd create a valid utmpx entry prior to start method execution.
526					</loctext>
527				</description>
528				<cardinality min='1' max='1'/>
529			</prop_pattern>
530		</pg_pattern>
531
532		<pg_pattern name='start' type='method' target='delegate'
533		    required='true'>
534			<description>
535				<loctext xml:lang='C'>
536The start method defines how svc.startd should start the instance.
537				</loctext>
538			</description>
539			<prop_pattern name='exec' type='astring'
540			    required='true'>
541				<common_name>
542					<loctext xml:lang='C'>
543method executable
544					</loctext>
545				</common_name>
546				<description>
547					<loctext xml:lang='C'>
548The method executable may be a script, program, or keyword.
549					</loctext>
550				</description>
551				<cardinality min='1' max='1'/>
552				<values>
553					<value name=':true'>
554						<description>
555							<loctext xml:lang='C'>
556Always returns SMF_EXIT_OK. This token should be used when the start method is unnecessary for the particular service implementation.
557							</loctext>
558						</description>
559					</value>
560					<value name=':kill [-signal]'>
561						<description>
562							<loctext xml:lang='C'>
563Sends 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.
564
565							</loctext>
566						</description>
567					</value>
568				</values>
569				<choices>
570					<include_values type='values'/>
571				</choices>
572			</prop_pattern>
573
574			<prop_pattern name='type' type='astring'
575			    required='true'>
576				<description>
577					<loctext xml:lang='C'>
578A method may only be of type method.
579					</loctext>
580				</description>
581				<cardinality min='1' max='1'/>
582				<constraints>
583					<value name="method"/>
584				</constraints>
585			</prop_pattern>
586
587			<prop_pattern name='timeout_seconds' type='count'
588			    required='true'>
589				<description>
590					<loctext xml:lang='C'>
591Number of seconds before the method is considered unresponsive.  After the method timeout expires, the method will be killed.
592					</loctext>
593				</description>
594				<cardinality min='1' max='1'/>
595				<values>
596					<value name="0">
597						<common_name>
598							<loctext xml:lang='C'>
599infinite
600							</loctext>
601						</common_name>
602						<description>
603							<loctext xml:lang='C'>
604This method will never time out.
605							</loctext>
606						</description>
607					</value>
608					<value name="-1">
609						<common_name>
610							<loctext xml:lang='C'>
611infinite (legacy)
612							</loctext>
613						</common_name>
614						<description>
615							<loctext xml:lang='C'>
616This method will never time out.  0 is the preferred value.
617							</loctext>
618						</description>
619					</value>
620				</values>
621			</prop_pattern>
622
623			<!-- method_context direct properties -->
624			<prop_pattern name='working_directory' type='astring'
625			    required='false'>
626				<description>
627					<loctext xml:lang='C'>
628The 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.
629					</loctext>
630				</description>
631				<cardinality min='1' max='1'/>
632			</prop_pattern>
633			<prop_pattern name='project' type='astring'
634			    required='false'>
635				<description>
636					<loctext xml:lang='C'>
637The 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.
638					</loctext>
639				</description>
640				<cardinality min='1' max='1'/>
641			</prop_pattern>
642			<prop_pattern name='resource_pool' type='astring'
643			    required='false'>
644				<common_name>
645					<loctext xml:lang='C'>
646method context resource pool
647					</loctext>
648				</common_name>
649				<description>
650					<loctext xml:lang='C'>
651The resource pool name on which to launch the method.  :default can be used
652as a token to indicate the pool specified in the project(4) entry given in
653the project attribute.
654					</loctext>
655				</description>
656				<cardinality min='1' max='1'/>
657			</prop_pattern>
658
659			<!-- method_credential properties -->
660			<prop_pattern name='user' type='astring'
661			    required='false'>
662				<common_name>
663					<loctext xml:lang='C'>
664method credential user
665					</loctext>
666				</common_name>
667				<description>
668					<loctext xml:lang='C'>
669The user ID in numeric or text form.
670					</loctext>
671				</description>
672				<cardinality min='1' max='1'/>
673			</prop_pattern>
674			<prop_pattern name='group' type='astring'
675			    required='false'>
676				<common_name>
677					<loctext xml:lang='C'>
678method credential group
679					</loctext>
680				</common_name>
681				<description>
682					<loctext xml:lang='C'>
683The group ID in numeric or text form.
684					</loctext>
685				</description>
686				<cardinality min='1' max='1'/>
687			</prop_pattern>
688			<prop_pattern name='supp_groups' type='astring'
689			    required='false'>
690				<common_name>
691					<loctext xml:lang='C'>
692method credential supplemental groups
693					</loctext>
694				</common_name>
695				<description>
696					<loctext xml:lang='C'>
697An optional string that specifies the supplemental group memberships by ID,
698in numeric or text form.
699					</loctext>
700				</description>
701				<cardinality min='1' max='1'/>
702				<internal_separators>,</internal_separators>
703			</prop_pattern>
704			<prop_pattern name='privileges' type='astring'
705			    required='false'>
706				<common_name>
707					<loctext xml:lang='C'>
708method credential privileges
709					</loctext>
710				</common_name>
711				<description>
712					<loctext xml:lang='C'>
713An optional string specifying the privilege set as defined in privileges(5).
714					</loctext>
715				</description>
716				<cardinality min='1' max='1'/>
717				<internal_separators>,</internal_separators>
718			</prop_pattern>
719			<prop_pattern name='limit_privileges' type='astring'
720			    required='false'>
721				<common_name>
722					<loctext xml:lang='C'>
723method credential limit privilege set
724					</loctext>
725				</common_name>
726				<description>
727					<loctext xml:lang='C'>
728An optional string specifying the limit privilege set as defined in
729privileges(5).
730					</loctext>
731				</description>
732				<cardinality min='1' max='1'/>
733				<internal_separators>,</internal_separators>
734			</prop_pattern>
735
736			<!-- method_profile properties -->
737			<prop_pattern name='use_profile' type='boolean'
738			    required='false'>
739				<description>
740					<loctext xml:lang='C'>
741A boolean that specifies whether the profile should be used instead of the
742user, group, privileges, and limit_privileges properties.
743					</loctext>
744				</description>
745				<cardinality min='1' max='1'/>
746			</prop_pattern>
747			<prop_pattern name='profile' type='astring'
748			    required='false'>
749				<common_name>
750					<loctext xml:lang='C'>
751method profile RBAC profile specification
752					</loctext>
753				</common_name>
754				<description>
755					<loctext xml:lang='C'>
756The name of an RBAC (role-based access control) profile which, along with the
757method executable, identifies an entry in exec_attr(4).
758					</loctext>
759				</description>
760				<cardinality min='1' max='1'/>
761			</prop_pattern>
762
763			<!-- method_environment properties -->
764			<prop_pattern name='environment' type='astring'
765			    required='false'>
766				<common_name>
767					<loctext xml:lang='C'>
768method environment variables
769					</loctext>
770				</common_name>
771				<description>
772					<loctext xml:lang='C'>
773Environment variables to insert into the environment of the method, in the
774form of a number of NAME=value strings.
775					</loctext>
776				</description>
777			</prop_pattern>
778		</pg_pattern>
779
780		<pg_pattern name='stop' type='method' target='delegate'
781		    required='true'>
782			<description>
783				<loctext xml:lang='C'>
784The stop method defines how svc.startd should stop the instance.
785				</loctext>
786			</description>
787			<prop_pattern name='exec' type='astring'
788			    required='true'>
789				<common_name>
790					<loctext xml:lang='C'>
791method executable
792					</loctext>
793				</common_name>
794				<description>
795					<loctext xml:lang='C'>
796The method executable may be a script, program, or keyword.
797					</loctext>
798				</description>
799				<cardinality min='1' max='1'/>
800				<values>
801					<value name=':true'>
802						<description>
803							<loctext xml:lang='C'>
804Always returns SMF_EXIT_OK. This token should be used when the stop method is unnecessary for the particular service implementation.
805							</loctext>
806						</description>
807					</value>
808					<value name=':kill [-signal]'>
809						<description>
810							<loctext xml:lang='C'>
811Sends 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.
812							</loctext>
813						</description>
814					</value>
815				</values>
816				<choices>
817					<include_values type='values'/>
818				</choices>
819			</prop_pattern>
820
821			<prop_pattern name='type' type='astring'
822			    required='true'>
823				<description>
824					<loctext xml:lang='C'>
825A method may only be of type method.
826					</loctext>
827				</description>
828				<cardinality min='1' max='1'/>
829				<constraints>
830					<value name="method"/>
831				</constraints>
832			</prop_pattern>
833
834			<prop_pattern name='timeout_seconds' type='count'
835			    required='true'>
836				<description>
837					<loctext xml:lang='C'>
838Number of seconds before the method is considered unresponsive.  After the method timeout expires, the method will be killed.
839					</loctext>
840				</description>
841				<cardinality min='1' max='1'/>
842				<values>
843					<value name="0">
844						<common_name>
845							<loctext xml:lang='C'>
846infinite
847							</loctext>
848						</common_name>
849						<description>
850							<loctext xml:lang='C'>
851This method will never time out.
852							</loctext>
853						</description>
854					</value>
855					<value name="-1">
856						<common_name>
857							<loctext xml:lang='C'>
858infinite (legacy)
859							</loctext>
860						</common_name>
861						<description>
862							<loctext xml:lang='C'>
863This method will never time out.  0 is the preferred value.
864							</loctext>
865						</description>
866					</value>
867				</values>
868			</prop_pattern>
869
870			<!-- method_context direct properties -->
871			<prop_pattern name='working_directory' type='astring'
872			    required='false'>
873				<description>
874					<loctext xml:lang='C'>
875The 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.
876					</loctext>
877				</description>
878				<cardinality min='1' max='1'/>
879			</prop_pattern>
880			<prop_pattern name='project' type='astring'
881			    required='false'>
882				<description>
883					<loctext xml:lang='C'>
884The 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.
885					</loctext>
886				</description>
887				<cardinality min='1' max='1'/>
888			</prop_pattern>
889			<prop_pattern name='resource_pool' type='astring'
890			    required='false'>
891				<common_name>
892					<loctext xml:lang='C'>
893method context resource pool
894					</loctext>
895				</common_name>
896				<description>
897					<loctext xml:lang='C'>
898The resource pool name on which to launch the method.  :default can be used
899as a token to indicate the pool specified in the project(4) entry given in
900the project attribute.
901					</loctext>
902				</description>
903				<cardinality min='1' max='1'/>
904			</prop_pattern>
905
906			<!-- method_credential properties -->
907			<prop_pattern name='user' type='astring'
908			    required='false'>
909				<common_name>
910					<loctext xml:lang='C'>
911method credential user
912					</loctext>
913				</common_name>
914				<description>
915					<loctext xml:lang='C'>
916The user ID in numeric or text form.
917					</loctext>
918				</description>
919				<cardinality min='1' max='1'/>
920			</prop_pattern>
921			<prop_pattern name='group' type='astring'
922			    required='false'>
923				<common_name>
924					<loctext xml:lang='C'>
925method credential group
926					</loctext>
927				</common_name>
928				<description>
929					<loctext xml:lang='C'>
930The group ID in numeric or text form.
931					</loctext>
932				</description>
933				<cardinality min='1' max='1'/>
934			</prop_pattern>
935			<prop_pattern name='supp_groups' type='astring'
936			    required='false'>
937				<common_name>
938					<loctext xml:lang='C'>
939method credential supplemental groups
940					</loctext>
941				</common_name>
942				<description>
943					<loctext xml:lang='C'>
944An optional string that specifies the supplemental group memberships by ID,
945in numeric or text form.
946					</loctext>
947				</description>
948				<cardinality min='1' max='1'/>
949				<internal_separators>,</internal_separators>
950			</prop_pattern>
951			<prop_pattern name='privileges' type='astring'
952			    required='false'>
953				<common_name>
954					<loctext xml:lang='C'>
955method credential privileges
956					</loctext>
957				</common_name>
958				<description>
959					<loctext xml:lang='C'>
960An optional string specifying the privilege set as defined in privileges(5).
961					</loctext>
962				</description>
963				<cardinality min='1' max='1'/>
964				<internal_separators>,</internal_separators>
965			</prop_pattern>
966			<prop_pattern name='limit_privileges' type='astring'
967			    required='false'>
968				<common_name>
969					<loctext xml:lang='C'>
970method credential limit privilege set
971					</loctext>
972				</common_name>
973				<description>
974					<loctext xml:lang='C'>
975An optional string specifying the limit privilege set as defined in
976privileges(5).
977					</loctext>
978				</description>
979				<cardinality min='1' max='1'/>
980				<internal_separators>,</internal_separators>
981			</prop_pattern>
982
983			<!-- method_profile properties -->
984			<prop_pattern name='use_profile' type='boolean'
985			    required='false'>
986				<description>
987					<loctext xml:lang='C'>
988A boolean that specifies whether the profile should be used instead of the
989user, group, privileges, and limit_privileges properties.
990					</loctext>
991				</description>
992				<cardinality min='1' max='1'/>
993			</prop_pattern>
994			<prop_pattern name='profile' type='astring'
995			    required='false'>
996				<common_name>
997					<loctext xml:lang='C'>
998method profile RBAC profile specification
999					</loctext>
1000				</common_name>
1001				<description>
1002					<loctext xml:lang='C'>
1003The name of an RBAC (role-based access control) profile which, along with the
1004method executable, identifies an entry in exec_attr(4).
1005					</loctext>
1006				</description>
1007				<cardinality min='1' max='1'/>
1008			</prop_pattern>
1009
1010			<!-- method_environment properties -->
1011			<prop_pattern name='environment' type='astring'
1012			    required='false'>
1013				<common_name>
1014					<loctext xml:lang='C'>
1015method environment variables
1016					</loctext>
1017				</common_name>
1018				<description>
1019					<loctext xml:lang='C'>
1020Environment variables to insert into the environment of the method, in the
1021form of a number of NAME=value strings.
1022					</loctext>
1023				</description>
1024			</prop_pattern>
1025		</pg_pattern>
1026
1027		<pg_pattern name='refresh' type='method' target='delegate'
1028		    required='false'>
1029			<description>
1030				<loctext xml:lang='C'>
1031The refresh method defines how svc.startd should upload new configuration to the service without interrupting its operation.
1032				</loctext>
1033			</description>
1034			<prop_pattern name='exec' type='astring'
1035			    required='true'>
1036				<common_name>
1037					<loctext xml:lang='C'>
1038method executable
1039					</loctext>
1040				</common_name>
1041				<description>
1042					<loctext xml:lang='C'>
1043The method executable may be a script, program, or keyword.
1044					</loctext>
1045				</description>
1046				<cardinality min='1' max='1'/>
1047				<values>
1048					<value name=':true'>
1049						<description>
1050							<loctext xml:lang='C'>
1051Always returns SMF_EXIT_OK.
1052							</loctext>
1053						</description>
1054					</value>
1055					<value name=':kill [-signal]'>
1056						<description>
1057							<loctext xml:lang='C'>
1058Sends 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 kill -HUP invocations.
1059							</loctext>
1060						</description>
1061					</value>
1062				</values>
1063				<choices>
1064					<include_values type='values'/>
1065				</choices>
1066			</prop_pattern>
1067
1068			<prop_pattern name='type' type='astring'
1069			    required='true'>
1070				<description>
1071					<loctext xml:lang='C'>
1072A method may only be of type method.
1073					</loctext>
1074				</description>
1075				<cardinality min='1' max='1'/>
1076				<constraints>
1077					<value name="method"/>
1078				</constraints>
1079			</prop_pattern>
1080
1081			<prop_pattern name='timeout_seconds' type='count'
1082			    required='true'>
1083				<description>
1084					<loctext xml:lang='C'>
1085Number of seconds before the method is considered unresponsive.  After the method timeout expires, the method will be killed.
1086					</loctext>
1087				</description>
1088				<cardinality min='1' max='1'/>
1089				<values>
1090					<value name="0">
1091						<common_name>
1092							<loctext xml:lang='C'>
1093infinite
1094							</loctext>
1095						</common_name>
1096						<description>
1097							<loctext xml:lang='C'>
1098This method will never time out.
1099							</loctext>
1100						</description>
1101					</value>
1102					<value name="-1">
1103						<common_name>
1104							<loctext xml:lang='C'>
1105infinite (legacy)
1106							</loctext>
1107						</common_name>
1108						<description>
1109							<loctext xml:lang='C'>
1110This method will never time out.  0 is the preferred value.
1111							</loctext>
1112						</description>
1113					</value>
1114				</values>
1115			</prop_pattern>
1116
1117			<!-- method_context direct properties -->
1118			<prop_pattern name='working_directory' type='astring'
1119			    required='false'>
1120				<description>
1121					<loctext xml:lang='C'>
1122The 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.
1123					</loctext>
1124				</description>
1125				<cardinality min='1' max='1'/>
1126			</prop_pattern>
1127			<prop_pattern name='project' type='astring'
1128			    required='false'>
1129				<description>
1130					<loctext xml:lang='C'>
1131The 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.
1132					</loctext>
1133				</description>
1134				<cardinality min='1' max='1'/>
1135			</prop_pattern>
1136			<prop_pattern name='resource_pool' type='astring'
1137			    required='false'>
1138				<common_name>
1139					<loctext xml:lang='C'>
1140method context resource pool
1141					</loctext>
1142				</common_name>
1143				<description>
1144					<loctext xml:lang='C'>
1145The resource pool name on which to launch the method.  :default can be used
1146as a token to indicate the pool specified in the project(4) entry given in
1147the project attribute.
1148					</loctext>
1149				</description>
1150				<cardinality min='1' max='1'/>
1151			</prop_pattern>
1152
1153			<!-- method_credential properties -->
1154			<prop_pattern name='user' type='astring'
1155			    required='false'>
1156				<common_name>
1157					<loctext xml:lang='C'>
1158method credential user
1159					</loctext>
1160				</common_name>
1161				<description>
1162					<loctext xml:lang='C'>
1163The user ID in numeric or text form.
1164					</loctext>
1165				</description>
1166				<cardinality min='1' max='1'/>
1167			</prop_pattern>
1168			<prop_pattern name='group' type='astring'
1169			    required='false'>
1170				<common_name>
1171					<loctext xml:lang='C'>
1172method credential group
1173					</loctext>
1174				</common_name>
1175				<description>
1176					<loctext xml:lang='C'>
1177The group ID in numeric or text form.
1178					</loctext>
1179				</description>
1180				<cardinality min='1' max='1'/>
1181			</prop_pattern>
1182			<prop_pattern name='supp_groups' type='astring'
1183			    required='false'>
1184				<common_name>
1185					<loctext xml:lang='C'>
1186method credential supplemental groups
1187					</loctext>
1188				</common_name>
1189				<description>
1190					<loctext xml:lang='C'>
1191An optional string that specifies the supplemental group memberships by ID,
1192in numeric or text form.
1193					</loctext>
1194				</description>
1195				<cardinality min='1' max='1'/>
1196				<internal_separators>,</internal_separators>
1197			</prop_pattern>
1198			<prop_pattern name='privileges' type='astring'
1199			    required='false'>
1200				<common_name>
1201					<loctext xml:lang='C'>
1202method credential privileges
1203					</loctext>
1204				</common_name>
1205				<description>
1206					<loctext xml:lang='C'>
1207An optional string specifying the privilege set as defined in privileges(5).
1208					</loctext>
1209				</description>
1210				<cardinality min='1' max='1'/>
1211				<internal_separators>,</internal_separators>
1212			</prop_pattern>
1213			<prop_pattern name='limit_privileges' type='astring'
1214			    required='false'>
1215				<common_name>
1216					<loctext xml:lang='C'>
1217method credential limit privilege set
1218					</loctext>
1219				</common_name>
1220				<description>
1221					<loctext xml:lang='C'>
1222An optional string specifying the limit privilege set as defined in
1223privileges(5).
1224					</loctext>
1225				</description>
1226				<cardinality min='1' max='1'/>
1227				<internal_separators>,</internal_separators>
1228			</prop_pattern>
1229
1230			<!-- method_profile properties -->
1231			<prop_pattern name='use_profile' type='boolean'
1232			    required='false'>
1233				<description>
1234					<loctext xml:lang='C'>
1235A boolean that specifies whether the profile should be used instead of the
1236user, group, privileges, and limit_privileges properties.
1237					</loctext>
1238				</description>
1239				<cardinality min='1' max='1'/>
1240			</prop_pattern>
1241			<prop_pattern name='profile' type='astring'
1242			    required='false'>
1243				<common_name>
1244					<loctext xml:lang='C'>
1245method profile RBAC profile specification
1246					</loctext>
1247				</common_name>
1248				<description>
1249					<loctext xml:lang='C'>
1250The name of an RBAC (role-based access control) profile which, along with the
1251method executable, identifies an entry in exec_attr(4).
1252					</loctext>
1253				</description>
1254				<cardinality min='1' max='1'/>
1255			</prop_pattern>
1256
1257			<!-- method_environment properties -->
1258			<prop_pattern name='environment' type='astring'
1259			    required='false'>
1260				<common_name>
1261					<loctext xml:lang='C'>
1262method environment variables
1263					</loctext>
1264				</common_name>
1265				<description>
1266					<loctext xml:lang='C'>
1267Environment variables to insert into the environment of the method, in the
1268form of a number of NAME=value strings.
1269					</loctext>
1270				</description>
1271			</prop_pattern>
1272		</pg_pattern>
1273
1274	</template>
1275</service>
1276
1277</service_bundle>
1278