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 Copyright 2015 Nexenta Systems, Inc. All rights reserved.
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='8'
76			    manpath='/usr/share/man' />
77			<manpage title='smf_method' section='7'
78			    manpath='/usr/share/man' />
79			<manpage title='smf' section='7'
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			<prop_pattern name='info_events_all' type='boolean'
396			    required='false'>
397				<description>
398					<loctext xml:lang='C'>
399Override notification parameters and raise Information Events on all state transitions
400					</loctext>
401				</description>
402				<visibility value='hidden' />
403			</prop_pattern>
404		</pg_pattern>
405
406		<pg_pattern name='system' type='framework'
407		    target='this' required='false'>
408			<prop_pattern name='reconfigure' type='boolean'
409			    required='false'>
410				<description>
411					<loctext xml:lang='C'>
412Indicates that a reconfiguration reboot has been requested.
413					</loctext>
414				</description>
415				<visibility value='readonly'/>
416				<cardinality min='1' max='1'/>
417			</prop_pattern>
418		</pg_pattern>
419
420		<pg_pattern name='startd' type='framework'
421		    target='delegate' required='false'>
422			<description>
423				<loctext xml:lang='C'>
424Information about how a service instance is managed by svc.startd, which is supplied by the service author, sometimes modified by the administrator.
425				</loctext>
426			</description>
427
428			<prop_pattern name='duration' type='astring'
429			    required='false'>
430				<description>
431					<loctext xml:lang='C'>
432Defines the service's model.
433					</loctext>
434				</description>
435				<cardinality min='1' max='1'/>
436				<constraints>
437				<value name='contract'>
438					<description>
439						<loctext xml:lang='C'>
440A 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.
441						</loctext>
442					</description>
443				</value>
444				<value name='transient'>
445					<description>
446						<loctext xml:lang='C'>
447The service is online as soon as its start method returns -- child processes are not monitored.
448						</loctext>
449					</description>
450				</value>
451				<value name='child'>
452					<description>
453						<loctext xml:lang='C'>
454A service which runs for the lifetime of the child process, and is restarted when that process exits.
455						</loctext>
456					</description>
457				</value>
458				</constraints>
459				<choices>
460					<include_values type='constraints'/>
461				</choices>
462			</prop_pattern>
463			<prop_pattern name='ignore_error' type='astring'
464			    required='false'>
465				<description>
466					<loctext xml:lang='C'>
467A list of events which should not be considered service errors by svc.startd.
468					</loctext>
469				</description>
470				<cardinality min='1' max='1'/>
471				<!--
472				    We won't recommend this as a choice since
473				    it's only here to work around the fact
474				    that startd defines this as a single
475				    value rather than a value list *and*
476				    templates doesn't currently take care
477				    of assembling separately defined
478				    values with the defined internal separator.
479				-->
480				<values>
481				<value name='signal,core'>
482					<description>
483						<loctext xml:lang='C'>
484svc.startd should ignore coredumps and signals sent from outside the service.
485						</loctext>
486					</description>
487				</value>
488				</values>
489				<choices>
490				<value name='core'>
491					<description>
492						<loctext xml:lang='C'>
493svc.startd should ignore coredumps from subprocesses.
494						</loctext>
495					</description>
496				</value>
497				<value name='signal'>
498					<description>
499						<loctext xml:lang='C'>
500svc.startd should ignore signals sent from outside the service.
501						</loctext>
502					</description>
503				</value>
504				<value name='core,signal'>
505					<description>
506						<loctext xml:lang='C'>
507svc.startd should ignore coredumps and signals sent from outside the service.
508						</loctext>
509					</description>
510				</value>
511				</choices>
512			</prop_pattern>
513			<prop_pattern name='need_session' type='boolean'
514			    required='false'>
515				<description>
516					<loctext xml:lang='C'>
517The instance should be launched in its own session per setpgrp(2).
518					</loctext>
519				</description>
520				<cardinality min='1' max='1'/>
521			</prop_pattern>
522			<prop_pattern name='utmpx_prefix' type='astring'
523			    required='false'>
524				<description>
525					<loctext xml:lang='C'>
526The instance requires that svc.startd create a valid utmpx entry prior to start method execution.
527					</loctext>
528				</description>
529				<cardinality min='1' max='1'/>
530			</prop_pattern>
531		</pg_pattern>
532
533		<pg_pattern name='start' type='method' target='delegate'
534		    required='true'>
535			<description>
536				<loctext xml:lang='C'>
537The start method defines how svc.startd should start the instance.
538				</loctext>
539			</description>
540			<prop_pattern name='exec' type='astring'
541			    required='true'>
542				<common_name>
543					<loctext xml:lang='C'>
544method executable
545					</loctext>
546				</common_name>
547				<description>
548					<loctext xml:lang='C'>
549The method executable may be a script, program, or keyword.
550					</loctext>
551				</description>
552				<cardinality min='1' max='1'/>
553				<values>
554					<value name=':true'>
555						<description>
556							<loctext xml:lang='C'>
557Always returns SMF_EXIT_OK. This token should be used when the start method is unnecessary for the particular service implementation.
558							</loctext>
559						</description>
560					</value>
561					<value name=':kill [-signal]'>
562						<description>
563							<loctext xml:lang='C'>
564Sends 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.
565
566							</loctext>
567						</description>
568					</value>
569				</values>
570				<choices>
571					<include_values type='values'/>
572				</choices>
573			</prop_pattern>
574
575			<prop_pattern name='type' type='astring'
576			    required='true'>
577				<description>
578					<loctext xml:lang='C'>
579A method may only be of type method.
580					</loctext>
581				</description>
582				<cardinality min='1' max='1'/>
583				<constraints>
584					<value name="method"/>
585				</constraints>
586			</prop_pattern>
587
588			<prop_pattern name='timeout_seconds' type='count'
589			    required='true'>
590				<description>
591					<loctext xml:lang='C'>
592Number of seconds before the method is considered unresponsive.  After the method timeout expires, the method will be killed.
593					</loctext>
594				</description>
595				<cardinality min='1' max='1'/>
596				<values>
597					<value name="0">
598						<common_name>
599							<loctext xml:lang='C'>
600infinite
601							</loctext>
602						</common_name>
603						<description>
604							<loctext xml:lang='C'>
605This method will never time out.
606							</loctext>
607						</description>
608					</value>
609					<value name="-1">
610						<common_name>
611							<loctext xml:lang='C'>
612infinite (legacy)
613							</loctext>
614						</common_name>
615						<description>
616							<loctext xml:lang='C'>
617This method will never time out.  0 is the preferred value.
618							</loctext>
619						</description>
620					</value>
621				</values>
622			</prop_pattern>
623
624			<!-- method_context direct properties -->
625			<prop_pattern name='working_directory' type='astring'
626			    required='false'>
627				<description>
628					<loctext xml:lang='C'>
629The 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.
630					</loctext>
631				</description>
632				<cardinality min='1' max='1'/>
633			</prop_pattern>
634			<prop_pattern name='project' type='astring'
635			    required='false'>
636				<description>
637					<loctext xml:lang='C'>
638The 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.
639					</loctext>
640				</description>
641				<cardinality min='1' max='1'/>
642			</prop_pattern>
643			<prop_pattern name='resource_pool' type='astring'
644			    required='false'>
645				<common_name>
646					<loctext xml:lang='C'>
647method context resource pool
648					</loctext>
649				</common_name>
650				<description>
651					<loctext xml:lang='C'>
652The resource pool name on which to launch the method.  :default can be used
653as a token to indicate the pool specified in the project(5) entry given in
654the project attribute.
655					</loctext>
656				</description>
657				<cardinality min='1' max='1'/>
658			</prop_pattern>
659
660			<prop_pattern name='security_flags' type='astring'
661			    required='false'>
662				<common_name>
663					<loctext xml:lang='C'>
664method credential security flags
665					</loctext>
666				</common_name>
667				<description>
668					<loctext xml:lang='C'>
669An optional string specifying the security flags as defined in security-flags(7).
670					</loctext>
671				</description>
672				<cardinality min='1' max='1'/>
673				<internal_separators>,</internal_separators>
674			</prop_pattern>
675
676			<!-- method_credential properties -->
677			<prop_pattern name='user' type='astring'
678			    required='false'>
679				<common_name>
680					<loctext xml:lang='C'>
681method credential user
682					</loctext>
683				</common_name>
684				<description>
685					<loctext xml:lang='C'>
686The user ID in numeric or text form.
687					</loctext>
688				</description>
689				<cardinality min='1' max='1'/>
690			</prop_pattern>
691			<prop_pattern name='group' type='astring'
692			    required='false'>
693				<common_name>
694					<loctext xml:lang='C'>
695method credential group
696					</loctext>
697				</common_name>
698				<description>
699					<loctext xml:lang='C'>
700The group ID in numeric or text form.
701					</loctext>
702				</description>
703				<cardinality min='1' max='1'/>
704			</prop_pattern>
705			<prop_pattern name='supp_groups' type='astring'
706			    required='false'>
707				<common_name>
708					<loctext xml:lang='C'>
709method credential supplemental groups
710					</loctext>
711				</common_name>
712				<description>
713					<loctext xml:lang='C'>
714An optional string that specifies the supplemental group memberships by ID,
715in numeric or text form.
716					</loctext>
717				</description>
718				<cardinality min='1' max='1'/>
719				<internal_separators>,</internal_separators>
720			</prop_pattern>
721			<prop_pattern name='privileges' type='astring'
722			    required='false'>
723				<common_name>
724					<loctext xml:lang='C'>
725method credential privileges
726					</loctext>
727				</common_name>
728				<description>
729					<loctext xml:lang='C'>
730An optional string specifying the privilege set as defined in privileges(7).
731					</loctext>
732				</description>
733				<cardinality min='1' max='1'/>
734				<internal_separators>,</internal_separators>
735			</prop_pattern>
736			<prop_pattern name='limit_privileges' type='astring'
737			    required='false'>
738				<common_name>
739					<loctext xml:lang='C'>
740method credential limit privilege set
741					</loctext>
742				</common_name>
743				<description>
744					<loctext xml:lang='C'>
745An optional string specifying the limit privilege set as defined in
746privileges(7).
747					</loctext>
748				</description>
749				<cardinality min='1' max='1'/>
750				<internal_separators>,</internal_separators>
751			</prop_pattern>
752
753			<!-- method_profile properties -->
754			<prop_pattern name='use_profile' type='boolean'
755			    required='false'>
756				<description>
757					<loctext xml:lang='C'>
758A boolean that specifies whether the profile should be used instead of the
759user, group, privileges, and limit_privileges properties.
760					</loctext>
761				</description>
762				<cardinality min='1' max='1'/>
763			</prop_pattern>
764			<prop_pattern name='profile' type='astring'
765			    required='false'>
766				<common_name>
767					<loctext xml:lang='C'>
768method profile RBAC profile specification
769					</loctext>
770				</common_name>
771				<description>
772					<loctext xml:lang='C'>
773The name of an RBAC (role-based access control) profile which, along with the
774method executable, identifies an entry in exec_attr(5).
775					</loctext>
776				</description>
777				<cardinality min='1' max='1'/>
778			</prop_pattern>
779
780			<!-- method_environment properties -->
781			<prop_pattern name='environment' type='astring'
782			    required='false'>
783				<common_name>
784					<loctext xml:lang='C'>
785method environment variables
786					</loctext>
787				</common_name>
788				<description>
789					<loctext xml:lang='C'>
790Environment variables to insert into the environment of the method, in the
791form of a number of NAME=value strings.
792					</loctext>
793				</description>
794			</prop_pattern>
795		</pg_pattern>
796
797		<pg_pattern name='stop' type='method' target='delegate'
798		    required='true'>
799			<description>
800				<loctext xml:lang='C'>
801The stop method defines how svc.startd should stop the instance.
802				</loctext>
803			</description>
804			<prop_pattern name='exec' type='astring'
805			    required='true'>
806				<common_name>
807					<loctext xml:lang='C'>
808method executable
809					</loctext>
810				</common_name>
811				<description>
812					<loctext xml:lang='C'>
813The method executable may be a script, program, or keyword.
814					</loctext>
815				</description>
816				<cardinality min='1' max='1'/>
817				<values>
818					<value name=':true'>
819						<description>
820							<loctext xml:lang='C'>
821Always returns SMF_EXIT_OK. This token should be used when the stop method is unnecessary for the particular service implementation.
822							</loctext>
823						</description>
824					</value>
825					<value name=':kill [-signal]'>
826						<description>
827							<loctext xml:lang='C'>
828Sends 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.
829							</loctext>
830						</description>
831					</value>
832				</values>
833				<choices>
834					<include_values type='values'/>
835				</choices>
836			</prop_pattern>
837
838			<prop_pattern name='type' type='astring'
839			    required='true'>
840				<description>
841					<loctext xml:lang='C'>
842A method may only be of type method.
843					</loctext>
844				</description>
845				<cardinality min='1' max='1'/>
846				<constraints>
847					<value name="method"/>
848				</constraints>
849			</prop_pattern>
850
851			<prop_pattern name='timeout_seconds' type='count'
852			    required='true'>
853				<description>
854					<loctext xml:lang='C'>
855Number of seconds before the method is considered unresponsive.  After the method timeout expires, the method will be killed.
856					</loctext>
857				</description>
858				<cardinality min='1' max='1'/>
859				<values>
860					<value name="0">
861						<common_name>
862							<loctext xml:lang='C'>
863infinite
864							</loctext>
865						</common_name>
866						<description>
867							<loctext xml:lang='C'>
868This method will never time out.
869							</loctext>
870						</description>
871					</value>
872					<value name="-1">
873						<common_name>
874							<loctext xml:lang='C'>
875infinite (legacy)
876							</loctext>
877						</common_name>
878						<description>
879							<loctext xml:lang='C'>
880This method will never time out.  0 is the preferred value.
881							</loctext>
882						</description>
883					</value>
884				</values>
885			</prop_pattern>
886
887			<!-- method_context direct properties -->
888			<prop_pattern name='working_directory' type='astring'
889			    required='false'>
890				<description>
891					<loctext xml:lang='C'>
892The 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.
893					</loctext>
894				</description>
895				<cardinality min='1' max='1'/>
896			</prop_pattern>
897			<prop_pattern name='project' type='astring'
898			    required='false'>
899				<description>
900					<loctext xml:lang='C'>
901The 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.
902					</loctext>
903				</description>
904				<cardinality min='1' max='1'/>
905			</prop_pattern>
906			<prop_pattern name='resource_pool' type='astring'
907			    required='false'>
908				<common_name>
909					<loctext xml:lang='C'>
910method context resource pool
911					</loctext>
912				</common_name>
913				<description>
914					<loctext xml:lang='C'>
915The resource pool name on which to launch the method.  :default can be used
916as a token to indicate the pool specified in the project(5) entry given in
917the project attribute.
918					</loctext>
919				</description>
920				<cardinality min='1' max='1'/>
921			</prop_pattern>
922
923			<prop_pattern name='security_flags' type='astring'
924			    required='false'>
925				<common_name>
926					<loctext xml:lang='C'>
927method credential security flags
928					</loctext>
929				</common_name>
930				<description>
931					<loctext xml:lang='C'>
932An optional string specifying the security flags as defined in security-flags(7).
933					</loctext>
934				</description>
935				<cardinality min='1' max='1'/>
936				<internal_separators>,</internal_separators>
937			</prop_pattern>
938
939			<!-- method_credential properties -->
940			<prop_pattern name='user' type='astring'
941			    required='false'>
942				<common_name>
943					<loctext xml:lang='C'>
944method credential user
945					</loctext>
946				</common_name>
947				<description>
948					<loctext xml:lang='C'>
949The user ID in numeric or text form.
950					</loctext>
951				</description>
952				<cardinality min='1' max='1'/>
953			</prop_pattern>
954			<prop_pattern name='group' type='astring'
955			    required='false'>
956				<common_name>
957					<loctext xml:lang='C'>
958method credential group
959					</loctext>
960				</common_name>
961				<description>
962					<loctext xml:lang='C'>
963The group ID in numeric or text form.
964					</loctext>
965				</description>
966				<cardinality min='1' max='1'/>
967			</prop_pattern>
968			<prop_pattern name='supp_groups' type='astring'
969			    required='false'>
970				<common_name>
971					<loctext xml:lang='C'>
972method credential supplemental groups
973					</loctext>
974				</common_name>
975				<description>
976					<loctext xml:lang='C'>
977An optional string that specifies the supplemental group memberships by ID,
978in numeric or text form.
979					</loctext>
980				</description>
981				<cardinality min='1' max='1'/>
982				<internal_separators>,</internal_separators>
983			</prop_pattern>
984			<prop_pattern name='privileges' type='astring'
985			    required='false'>
986				<common_name>
987					<loctext xml:lang='C'>
988method credential privileges
989					</loctext>
990				</common_name>
991				<description>
992					<loctext xml:lang='C'>
993An optional string specifying the privilege set as defined in privileges(7).
994					</loctext>
995				</description>
996				<cardinality min='1' max='1'/>
997				<internal_separators>,</internal_separators>
998			</prop_pattern>
999			<prop_pattern name='limit_privileges' type='astring'
1000			    required='false'>
1001				<common_name>
1002					<loctext xml:lang='C'>
1003method credential limit privilege set
1004					</loctext>
1005				</common_name>
1006				<description>
1007					<loctext xml:lang='C'>
1008An optional string specifying the limit privilege set as defined in
1009privileges(7).
1010					</loctext>
1011				</description>
1012				<cardinality min='1' max='1'/>
1013				<internal_separators>,</internal_separators>
1014			</prop_pattern>
1015
1016			<!-- method_profile properties -->
1017			<prop_pattern name='use_profile' type='boolean'
1018			    required='false'>
1019				<description>
1020					<loctext xml:lang='C'>
1021A boolean that specifies whether the profile should be used instead of the
1022user, group, privileges, and limit_privileges properties.
1023					</loctext>
1024				</description>
1025				<cardinality min='1' max='1'/>
1026			</prop_pattern>
1027			<prop_pattern name='profile' type='astring'
1028			    required='false'>
1029				<common_name>
1030					<loctext xml:lang='C'>
1031method profile RBAC profile specification
1032					</loctext>
1033				</common_name>
1034				<description>
1035					<loctext xml:lang='C'>
1036The name of an RBAC (role-based access control) profile which, along with the
1037method executable, identifies an entry in exec_attr(5).
1038					</loctext>
1039				</description>
1040				<cardinality min='1' max='1'/>
1041			</prop_pattern>
1042
1043			<!-- method_environment properties -->
1044			<prop_pattern name='environment' type='astring'
1045			    required='false'>
1046				<common_name>
1047					<loctext xml:lang='C'>
1048method environment variables
1049					</loctext>
1050				</common_name>
1051				<description>
1052					<loctext xml:lang='C'>
1053Environment variables to insert into the environment of the method, in the
1054form of a number of NAME=value strings.
1055					</loctext>
1056				</description>
1057			</prop_pattern>
1058		</pg_pattern>
1059
1060		<pg_pattern name='refresh' type='method' target='delegate'
1061		    required='false'>
1062			<description>
1063				<loctext xml:lang='C'>
1064The refresh method defines how svc.startd should upload new configuration to the service without interrupting its operation.
1065				</loctext>
1066			</description>
1067			<prop_pattern name='exec' type='astring'
1068			    required='true'>
1069				<common_name>
1070					<loctext xml:lang='C'>
1071method executable
1072					</loctext>
1073				</common_name>
1074				<description>
1075					<loctext xml:lang='C'>
1076The method executable may be a script, program, or keyword.
1077					</loctext>
1078				</description>
1079				<cardinality min='1' max='1'/>
1080				<values>
1081					<value name=':true'>
1082						<description>
1083							<loctext xml:lang='C'>
1084Always returns SMF_EXIT_OK.
1085							</loctext>
1086						</description>
1087					</value>
1088					<value name=':kill [-signal]'>
1089						<description>
1090							<loctext xml:lang='C'>
1091Sends 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.
1092							</loctext>
1093						</description>
1094					</value>
1095				</values>
1096				<choices>
1097					<include_values type='values'/>
1098				</choices>
1099			</prop_pattern>
1100
1101			<prop_pattern name='type' type='astring'
1102			    required='true'>
1103				<description>
1104					<loctext xml:lang='C'>
1105A method may only be of type method.
1106					</loctext>
1107				</description>
1108				<cardinality min='1' max='1'/>
1109				<constraints>
1110					<value name="method"/>
1111				</constraints>
1112			</prop_pattern>
1113
1114			<prop_pattern name='timeout_seconds' type='count'
1115			    required='true'>
1116				<description>
1117					<loctext xml:lang='C'>
1118Number of seconds before the method is considered unresponsive.  After the method timeout expires, the method will be killed.
1119					</loctext>
1120				</description>
1121				<cardinality min='1' max='1'/>
1122				<values>
1123					<value name="0">
1124						<common_name>
1125							<loctext xml:lang='C'>
1126infinite
1127							</loctext>
1128						</common_name>
1129						<description>
1130							<loctext xml:lang='C'>
1131This method will never time out.
1132							</loctext>
1133						</description>
1134					</value>
1135					<value name="-1">
1136						<common_name>
1137							<loctext xml:lang='C'>
1138infinite (legacy)
1139							</loctext>
1140						</common_name>
1141						<description>
1142							<loctext xml:lang='C'>
1143This method will never time out.  0 is the preferred value.
1144							</loctext>
1145						</description>
1146					</value>
1147				</values>
1148			</prop_pattern>
1149
1150			<!-- method_context direct properties -->
1151			<prop_pattern name='working_directory' type='astring'
1152			    required='false'>
1153				<description>
1154					<loctext xml:lang='C'>
1155The 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.
1156					</loctext>
1157				</description>
1158				<cardinality min='1' max='1'/>
1159			</prop_pattern>
1160			<prop_pattern name='project' type='astring'
1161			    required='false'>
1162				<description>
1163					<loctext xml:lang='C'>
1164The 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.
1165					</loctext>
1166				</description>
1167				<cardinality min='1' max='1'/>
1168			</prop_pattern>
1169			<prop_pattern name='resource_pool' type='astring'
1170			    required='false'>
1171				<common_name>
1172					<loctext xml:lang='C'>
1173method context resource pool
1174					</loctext>
1175				</common_name>
1176				<description>
1177					<loctext xml:lang='C'>
1178The resource pool name on which to launch the method.  :default can be used
1179as a token to indicate the pool specified in the project(5) entry given in
1180the project attribute.
1181					</loctext>
1182				</description>
1183				<cardinality min='1' max='1'/>
1184			</prop_pattern>
1185			<prop_pattern name='security_flags' type='astring'
1186			    required='false'>
1187				<common_name>
1188					<loctext xml:lang='C'>
1189method security flags
1190					</loctext>
1191				</common_name>
1192				<description>
1193					<loctext xml:lang='C'>
1194An optional string specifying the security flags as defined in security-flags(7).
1195					</loctext>
1196				</description>
1197				<cardinality min='1' max='1'/>
1198				<internal_separators>,</internal_separators>
1199			</prop_pattern>
1200
1201			<!-- method_credential properties -->
1202			<prop_pattern name='user' type='astring'
1203			    required='false'>
1204				<common_name>
1205					<loctext xml:lang='C'>
1206method credential user
1207					</loctext>
1208				</common_name>
1209				<description>
1210					<loctext xml:lang='C'>
1211The user ID in numeric or text form.
1212					</loctext>
1213				</description>
1214				<cardinality min='1' max='1'/>
1215			</prop_pattern>
1216			<prop_pattern name='group' type='astring'
1217			    required='false'>
1218				<common_name>
1219					<loctext xml:lang='C'>
1220method credential group
1221					</loctext>
1222				</common_name>
1223				<description>
1224					<loctext xml:lang='C'>
1225The group ID in numeric or text form.
1226					</loctext>
1227				</description>
1228				<cardinality min='1' max='1'/>
1229			</prop_pattern>
1230			<prop_pattern name='supp_groups' type='astring'
1231			    required='false'>
1232				<common_name>
1233					<loctext xml:lang='C'>
1234method credential supplemental groups
1235					</loctext>
1236				</common_name>
1237				<description>
1238					<loctext xml:lang='C'>
1239An optional string that specifies the supplemental group memberships by ID,
1240in numeric or text form.
1241					</loctext>
1242				</description>
1243				<cardinality min='1' max='1'/>
1244				<internal_separators>,</internal_separators>
1245			</prop_pattern>
1246			<prop_pattern name='privileges' type='astring'
1247			    required='false'>
1248				<common_name>
1249					<loctext xml:lang='C'>
1250method credential privileges
1251					</loctext>
1252				</common_name>
1253				<description>
1254					<loctext xml:lang='C'>
1255An optional string specifying the privilege set as defined in privileges(7).
1256					</loctext>
1257				</description>
1258				<cardinality min='1' max='1'/>
1259				<internal_separators>,</internal_separators>
1260			</prop_pattern>
1261			<prop_pattern name='limit_privileges' type='astring'
1262			    required='false'>
1263				<common_name>
1264					<loctext xml:lang='C'>
1265method credential limit privilege set
1266					</loctext>
1267				</common_name>
1268				<description>
1269					<loctext xml:lang='C'>
1270An optional string specifying the limit privilege set as defined in
1271privileges(7).
1272					</loctext>
1273				</description>
1274				<cardinality min='1' max='1'/>
1275				<internal_separators>,</internal_separators>
1276			</prop_pattern>
1277
1278			<!-- method_profile properties -->
1279			<prop_pattern name='use_profile' type='boolean'
1280			    required='false'>
1281				<description>
1282					<loctext xml:lang='C'>
1283A boolean that specifies whether the profile should be used instead of the
1284user, group, privileges, and limit_privileges properties.
1285					</loctext>
1286				</description>
1287				<cardinality min='1' max='1'/>
1288			</prop_pattern>
1289			<prop_pattern name='profile' type='astring'
1290			    required='false'>
1291				<common_name>
1292					<loctext xml:lang='C'>
1293method profile RBAC profile specification
1294					</loctext>
1295				</common_name>
1296				<description>
1297					<loctext xml:lang='C'>
1298The name of an RBAC (role-based access control) profile which, along with the
1299method executable, identifies an entry in exec_attr(5).
1300					</loctext>
1301				</description>
1302				<cardinality min='1' max='1'/>
1303			</prop_pattern>
1304
1305			<!-- method_environment properties -->
1306			<prop_pattern name='environment' type='astring'
1307			    required='false'>
1308				<common_name>
1309					<loctext xml:lang='C'>
1310method environment variables
1311					</loctext>
1312				</common_name>
1313				<description>
1314					<loctext xml:lang='C'>
1315Environment variables to insert into the environment of the method, in the
1316form of a number of NAME=value strings.
1317					</loctext>
1318				</description>
1319			</prop_pattern>
1320		</pg_pattern>
1321
1322	</template>
1323</service>
1324
1325</service_bundle>
1326