Home | History | Annotate | Download | only in milestone
      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'>
     71 master 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'>
     96 Communicate 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'>
    103 The 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'>
    113 The 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'>
    123 Primary 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'>
    133 PID 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'>
    143 Time 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'>
    153 Restarter-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'>
    163 Auxiliary 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'>
    172 Time 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'>
    182 The 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'>
    191 The instance is online and running.
    192 							</loctext>
    193 						</description>
    194 					</value>
    195 					<value name="offline">
    196 						<description>
    197 							<loctext xml:lang='C'>
    198 The 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'>
    205 The 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'>
    212 The 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'>
    219 The instance is disabled.
    220 							</loctext>
    221 						</description>
    222 					</value>
    223 					<value name="maintenance">
    224 						<description>
    225 							<loctext xml:lang='C'>
    226 The 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'>
    236 The 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'>
    245 The 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'>
    252 The 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'>
    259 The 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'>
    266 The instance will be disabled.
    267 							</loctext>
    268 						</description>
    269 					</value>
    270 					<value name="maintenance">
    271 						<description>
    272 							<loctext xml:lang='C'>
    273 The 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'>
    280 The 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'>
    292 Specify 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'>
    300 Define 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'>
    308 Issue console messages only on service failures.
    309 						</loctext>
    310 					</description>
    311 				</value>
    312 				<value name='verbose'>
    313 					<description>
    314 						<loctext xml:lang='C'>
    315 Print 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'>
    329 Control 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'>
    337 Send 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'>
    344 Sends 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'>
    351 Send 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'>
    365 An 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'>
    382 Start all enabled services.
    383 						</loctext>
    384 					</description>
    385 				</value>
    386 				<value name='none'>
    387 					<description>
    388 						<loctext xml:lang='C'>
    389 Start 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'>
    403 Indicates 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'>
    415 Information 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'>
    423 Defines 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'>
    431 A 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'>
    438 The 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'>
    445 A 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'>
    458 A 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'>
    475 svc.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'>
    484 svc.startd should ignore coredumps from subprocesses.
    485 						</loctext>
    486 					</description>
    487 				</value>
    488 				<value name='signal'>
    489 					<description>
    490 						<loctext xml:lang='C'>
    491 svc.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'>
    498 svc.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'>
    508 The 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'>
    517 The 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'>
    528 The 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'>
    535 method executable
    536 					</loctext>
    537 				</common_name>
    538 				<description>
    539 					<loctext xml:lang='C'>
    540 The 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'>
    548 Always 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'>
    555 Sends 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'>
    570 A 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'>
    583 Number 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'>
    591 infinite
    592 							</loctext>
    593 						</common_name>
    594 						<description>
    595 							<loctext xml:lang='C'>
    596 This method will never time out.
    597 							</loctext>
    598 						</description>
    599 					</value>
    600 					<value name="-1">
    601 						<common_name>
    602 							<loctext xml:lang='C'>
    603 infinite (legacy)
    604 							</loctext>
    605 						</common_name>
    606 						<description>
    607 							<loctext xml:lang='C'>
    608 This 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'>
    620 The 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'>
    629 The 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'>
    638 method context resource pool
    639 					</loctext>
    640 				</common_name>
    641 				<description>
    642 					<loctext xml:lang='C'>
    643 The resource pool name on which to launch the method.  :default can be used
    644 as a token to indicate the pool specified in the project(4) entry given in
    645 the 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'>
    656 method credential user
    657 					</loctext>
    658 				</common_name>
    659 				<description>
    660 					<loctext xml:lang='C'>
    661 The 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'>
    670 method credential group
    671 					</loctext>
    672 				</common_name>
    673 				<description>
    674 					<loctext xml:lang='C'>
    675 The 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'>
    684 method credential supplemental groups
    685 					</loctext>
    686 				</common_name>
    687 				<description>
    688 					<loctext xml:lang='C'>
    689 An optional string that specifies the supplemental group memberships by ID,
    690 in 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'>
    700 method credential privileges
    701 					</loctext>
    702 				</common_name>
    703 				<description>
    704 					<loctext xml:lang='C'>
    705 An 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'>
    715 method credential limit privilege set
    716 					</loctext>
    717 				</common_name>
    718 				<description>
    719 					<loctext xml:lang='C'>
    720 An optional string specifying the limit privilege set as defined in
    721 privileges(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'>
    733 A boolean that specifies whether the profile should be used instead of the
    734 user, 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'>
    743 method profile RBAC profile specification 
    744 					</loctext>
    745 				</common_name>
    746 				<description>
    747 					<loctext xml:lang='C'>
    748 The name of an RBAC (role-based access control) profile which, along with the
    749 method 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'>
    760 method environment variables
    761 					</loctext>
    762 				</common_name>
    763 				<description>
    764 					<loctext xml:lang='C'>
    765 Environment variables to insert into the environment of the method, in the
    766 form 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'>
    776 The 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'>
    783 method executable
    784 					</loctext>
    785 				</common_name>
    786 				<description>
    787 					<loctext xml:lang='C'>
    788 The 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'>
    796 Always 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'>
    803 Sends 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'>
    817 A 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'>
    830 Number 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'>
    838 infinite
    839 							</loctext>
    840 						</common_name>
    841 						<description>
    842 							<loctext xml:lang='C'>
    843 This method will never time out.
    844 							</loctext>
    845 						</description>
    846 					</value>
    847 					<value name="-1">
    848 						<common_name>
    849 							<loctext xml:lang='C'>
    850 infinite (legacy)
    851 							</loctext>
    852 						</common_name>
    853 						<description>
    854 							<loctext xml:lang='C'>
    855 This 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'>
    867 The 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'>
    876 The 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'>
    885 method context resource pool
    886 					</loctext>
    887 				</common_name>
    888 				<description>
    889 					<loctext xml:lang='C'>
    890 The resource pool name on which to launch the method.  :default can be used
    891 as a token to indicate the pool specified in the project(4) entry given in
    892 the 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'>
    903 method credential user
    904 					</loctext>
    905 				</common_name>
    906 				<description>
    907 					<loctext xml:lang='C'>
    908 The 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'>
    917 method credential group
    918 					</loctext>
    919 				</common_name>
    920 				<description>
    921 					<loctext xml:lang='C'>
    922 The 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'>
    931 method credential supplemental groups
    932 					</loctext>
    933 				</common_name>
    934 				<description>
    935 					<loctext xml:lang='C'>
    936 An optional string that specifies the supplemental group memberships by ID,
    937 in 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'>
    947 method credential privileges
    948 					</loctext>
    949 				</common_name>
    950 				<description>
    951 					<loctext xml:lang='C'>
    952 An 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'>
    962 method credential limit privilege set
    963 					</loctext>
    964 				</common_name>
    965 				<description>
    966 					<loctext xml:lang='C'>
    967 An optional string specifying the limit privilege set as defined in
    968 privileges(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'>
    980 A boolean that specifies whether the profile should be used instead of the
    981 user, 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'>
    990 method profile RBAC profile specification 
    991 					</loctext>
    992 				</common_name>
    993 				<description>
    994 					<loctext xml:lang='C'>
    995 The name of an RBAC (role-based access control) profile which, along with the
    996 method 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'>
   1007 method environment variables
   1008 					</loctext>
   1009 				</common_name>
   1010 				<description>
   1011 					<loctext xml:lang='C'>
   1012 Environment variables to insert into the environment of the method, in the
   1013 form 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'>
   1023 The 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'>
   1030 method executable
   1031 					</loctext>
   1032 				</common_name>
   1033 				<description>
   1034 					<loctext xml:lang='C'>
   1035 The 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'>
   1043 Always returns SMF_EXIT_OK.
   1044 							</loctext>
   1045 						</description>
   1046 					</value>
   1047 					<value name=':kill [-signal]'>
   1048 						<description>
   1049 							<loctext xml:lang='C'>
   1050 Sends 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'>
   1064 A 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'>
   1077 Number 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'>
   1085 infinite
   1086 							</loctext>
   1087 						</common_name>
   1088 						<description>
   1089 							<loctext xml:lang='C'>
   1090 This method will never time out.
   1091 							</loctext>
   1092 						</description>
   1093 					</value>
   1094 					<value name="-1">
   1095 						<common_name>
   1096 							<loctext xml:lang='C'>
   1097 infinite (legacy)
   1098 							</loctext>
   1099 						</common_name>
   1100 						<description>
   1101 							<loctext xml:lang='C'>
   1102 This 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'>
   1114 The 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'>
   1123 The 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'>
   1132 method context resource pool
   1133 					</loctext>
   1134 				</common_name>
   1135 				<description>
   1136 					<loctext xml:lang='C'>
   1137 The resource pool name on which to launch the method.  :default can be used
   1138 as a token to indicate the pool specified in the project(4) entry given in
   1139 the 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'>
   1150 method credential user
   1151 					</loctext>
   1152 				</common_name>
   1153 				<description>
   1154 					<loctext xml:lang='C'>
   1155 The 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'>
   1164 method credential group
   1165 					</loctext>
   1166 				</common_name>
   1167 				<description>
   1168 					<loctext xml:lang='C'>
   1169 The 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'>
   1178 method credential supplemental groups
   1179 					</loctext>
   1180 				</common_name>
   1181 				<description>
   1182 					<loctext xml:lang='C'>
   1183 An optional string that specifies the supplemental group memberships by ID,
   1184 in 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'>
   1194 method credential privileges
   1195 					</loctext>
   1196 				</common_name>
   1197 				<description>
   1198 					<loctext xml:lang='C'>
   1199 An 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'>
   1209 method credential limit privilege set
   1210 					</loctext>
   1211 				</common_name>
   1212 				<description>
   1213 					<loctext xml:lang='C'>
   1214 An optional string specifying the limit privilege set as defined in
   1215 privileges(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'>
   1227 A boolean that specifies whether the profile should be used instead of the
   1228 user, 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'>
   1237 method profile RBAC profile specification 
   1238 					</loctext>
   1239 				</common_name>
   1240 				<description>
   1241 					<loctext xml:lang='C'>
   1242 The name of an RBAC (role-based access control) profile which, along with the
   1243 method 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'>
   1254 method environment variables
   1255 					</loctext>
   1256 				</common_name>
   1257 				<description>
   1258 					<loctext xml:lang='C'>
   1259 Environment variables to insert into the environment of the method, in the
   1260 form 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