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