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'> 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 <prop_pattern name='info_events_all' type='boolean' 396 required='false'> 397 <description> 398 <loctext xml:lang='C'> 399 Override 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'> 412 Indicates 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'> 424 Information 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'> 432 Defines 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'> 440 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. 441 </loctext> 442 </description> 443 </value> 444 <value name='transient'> 445 <description> 446 <loctext xml:lang='C'> 447 The 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'> 454 A 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'> 467 A 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'> 484 svc.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'> 493 svc.startd should ignore coredumps from subprocesses. 494 </loctext> 495 </description> 496 </value> 497 <value name='signal'> 498 <description> 499 <loctext xml:lang='C'> 500 svc.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'> 507 svc.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'> 517 The 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'> 526 The 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'> 537 The 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'> 544 method executable 545 </loctext> 546 </common_name> 547 <description> 548 <loctext xml:lang='C'> 549 The 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'> 557 Always 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'> 564 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. 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'> 579 A 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'> 592 Number 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'> 600 infinite 601 </loctext> 602 </common_name> 603 <description> 604 <loctext xml:lang='C'> 605 This method will never time out. 606 </loctext> 607 </description> 608 </value> 609 <value name="-1"> 610 <common_name> 611 <loctext xml:lang='C'> 612 infinite (legacy) 613 </loctext> 614 </common_name> 615 <description> 616 <loctext xml:lang='C'> 617 This 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'> 629 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. 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'> 638 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. 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'> 647 method context resource pool 648 </loctext> 649 </common_name> 650 <description> 651 <loctext xml:lang='C'> 652 The resource pool name on which to launch the method. :default can be used 653 as a token to indicate the pool specified in the project(4) entry given in 654 the project attribute. 655 </loctext> 656 </description> 657 <cardinality min='1' max='1'/> 658 </prop_pattern> 659 660 <!-- method_credential properties --> 661 <prop_pattern name='user' type='astring' 662 required='false'> 663 <common_name> 664 <loctext xml:lang='C'> 665 method credential user 666 </loctext> 667 </common_name> 668 <description> 669 <loctext xml:lang='C'> 670 The user ID in numeric or text form. 671 </loctext> 672 </description> 673 <cardinality min='1' max='1'/> 674 </prop_pattern> 675 <prop_pattern name='group' type='astring' 676 required='false'> 677 <common_name> 678 <loctext xml:lang='C'> 679 method credential group 680 </loctext> 681 </common_name> 682 <description> 683 <loctext xml:lang='C'> 684 The group ID in numeric or text form. 685 </loctext> 686 </description> 687 <cardinality min='1' max='1'/> 688 </prop_pattern> 689 <prop_pattern name='supp_groups' type='astring' 690 required='false'> 691 <common_name> 692 <loctext xml:lang='C'> 693 method credential supplemental groups 694 </loctext> 695 </common_name> 696 <description> 697 <loctext xml:lang='C'> 698 An optional string that specifies the supplemental group memberships by ID, 699 in numeric or text form. 700 </loctext> 701 </description> 702 <cardinality min='1' max='1'/> 703 <internal_separators>,</internal_separators> 704 </prop_pattern> 705 <prop_pattern name='privileges' type='astring' 706 required='false'> 707 <common_name> 708 <loctext xml:lang='C'> 709 method credential privileges 710 </loctext> 711 </common_name> 712 <description> 713 <loctext xml:lang='C'> 714 An optional string specifying the privilege set as defined in privileges(5). 715 </loctext> 716 </description> 717 <cardinality min='1' max='1'/> 718 <internal_separators>,</internal_separators> 719 </prop_pattern> 720 <prop_pattern name='limit_privileges' type='astring' 721 required='false'> 722 <common_name> 723 <loctext xml:lang='C'> 724 method credential limit privilege set 725 </loctext> 726 </common_name> 727 <description> 728 <loctext xml:lang='C'> 729 An optional string specifying the limit privilege set as defined in 730 privileges(5). 731 </loctext> 732 </description> 733 <cardinality min='1' max='1'/> 734 <internal_separators>,</internal_separators> 735 </prop_pattern> 736 737 <!-- method_profile properties --> 738 <prop_pattern name='use_profile' type='boolean' 739 required='false'> 740 <description> 741 <loctext xml:lang='C'> 742 A boolean that specifies whether the profile should be used instead of the 743 user, group, privileges, and limit_privileges properties. 744 </loctext> 745 </description> 746 <cardinality min='1' max='1'/> 747 </prop_pattern> 748 <prop_pattern name='profile' type='astring' 749 required='false'> 750 <common_name> 751 <loctext xml:lang='C'> 752 method profile RBAC profile specification 753 </loctext> 754 </common_name> 755 <description> 756 <loctext xml:lang='C'> 757 The name of an RBAC (role-based access control) profile which, along with the 758 method executable, identifies an entry in exec_attr(4). 759 </loctext> 760 </description> 761 <cardinality min='1' max='1'/> 762 </prop_pattern> 763 764 <!-- method_environment properties --> 765 <prop_pattern name='environment' type='astring' 766 required='false'> 767 <common_name> 768 <loctext xml:lang='C'> 769 method environment variables 770 </loctext> 771 </common_name> 772 <description> 773 <loctext xml:lang='C'> 774 Environment variables to insert into the environment of the method, in the 775 form of a number of NAME=value strings. 776 </loctext> 777 </description> 778 </prop_pattern> 779 </pg_pattern> 780 781 <pg_pattern name='stop' type='method' target='delegate' 782 required='true'> 783 <description> 784 <loctext xml:lang='C'> 785 The stop method defines how svc.startd should stop the instance. 786 </loctext> 787 </description> 788 <prop_pattern name='exec' type='astring' 789 required='true'> 790 <common_name> 791 <loctext xml:lang='C'> 792 method executable 793 </loctext> 794 </common_name> 795 <description> 796 <loctext xml:lang='C'> 797 The method executable may be a script, program, or keyword. 798 </loctext> 799 </description> 800 <cardinality min='1' max='1'/> 801 <values> 802 <value name=':true'> 803 <description> 804 <loctext xml:lang='C'> 805 Always returns SMF_EXIT_OK. This token should be used when the stop method is unnecessary for the particular service implementation. 806 </loctext> 807 </description> 808 </value> 809 <value name=':kill [-signal]'> 810 <description> 811 <loctext xml:lang='C'> 812 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. 813 </loctext> 814 </description> 815 </value> 816 </values> 817 <choices> 818 <include_values type='values'/> 819 </choices> 820 </prop_pattern> 821 822 <prop_pattern name='type' type='astring' 823 required='true'> 824 <description> 825 <loctext xml:lang='C'> 826 A method may only be of type method. 827 </loctext> 828 </description> 829 <cardinality min='1' max='1'/> 830 <constraints> 831 <value name="method"/> 832 </constraints> 833 </prop_pattern> 834 835 <prop_pattern name='timeout_seconds' type='count' 836 required='true'> 837 <description> 838 <loctext xml:lang='C'> 839 Number of seconds before the method is considered unresponsive. After the method timeout expires, the method will be killed. 840 </loctext> 841 </description> 842 <cardinality min='1' max='1'/> 843 <values> 844 <value name="0"> 845 <common_name> 846 <loctext xml:lang='C'> 847 infinite 848 </loctext> 849 </common_name> 850 <description> 851 <loctext xml:lang='C'> 852 This method will never time out. 853 </loctext> 854 </description> 855 </value> 856 <value name="-1"> 857 <common_name> 858 <loctext xml:lang='C'> 859 infinite (legacy) 860 </loctext> 861 </common_name> 862 <description> 863 <loctext xml:lang='C'> 864 This method will never time out. 0 is the preferred value. 865 </loctext> 866 </description> 867 </value> 868 </values> 869 </prop_pattern> 870 871 <!-- method_context direct properties --> 872 <prop_pattern name='working_directory' type='astring' 873 required='false'> 874 <description> 875 <loctext xml:lang='C'> 876 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. 877 </loctext> 878 </description> 879 <cardinality min='1' max='1'/> 880 </prop_pattern> 881 <prop_pattern name='project' type='astring' 882 required='false'> 883 <description> 884 <loctext xml:lang='C'> 885 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. 886 </loctext> 887 </description> 888 <cardinality min='1' max='1'/> 889 </prop_pattern> 890 <prop_pattern name='resource_pool' type='astring' 891 required='false'> 892 <common_name> 893 <loctext xml:lang='C'> 894 method context resource pool 895 </loctext> 896 </common_name> 897 <description> 898 <loctext xml:lang='C'> 899 The resource pool name on which to launch the method. :default can be used 900 as a token to indicate the pool specified in the project(4) entry given in 901 the project attribute. 902 </loctext> 903 </description> 904 <cardinality min='1' max='1'/> 905 </prop_pattern> 906 907 <!-- method_credential properties --> 908 <prop_pattern name='user' type='astring' 909 required='false'> 910 <common_name> 911 <loctext xml:lang='C'> 912 method credential user 913 </loctext> 914 </common_name> 915 <description> 916 <loctext xml:lang='C'> 917 The user ID in numeric or text form. 918 </loctext> 919 </description> 920 <cardinality min='1' max='1'/> 921 </prop_pattern> 922 <prop_pattern name='group' type='astring' 923 required='false'> 924 <common_name> 925 <loctext xml:lang='C'> 926 method credential group 927 </loctext> 928 </common_name> 929 <description> 930 <loctext xml:lang='C'> 931 The group ID in numeric or text form. 932 </loctext> 933 </description> 934 <cardinality min='1' max='1'/> 935 </prop_pattern> 936 <prop_pattern name='supp_groups' type='astring' 937 required='false'> 938 <common_name> 939 <loctext xml:lang='C'> 940 method credential supplemental groups 941 </loctext> 942 </common_name> 943 <description> 944 <loctext xml:lang='C'> 945 An optional string that specifies the supplemental group memberships by ID, 946 in numeric or text form. 947 </loctext> 948 </description> 949 <cardinality min='1' max='1'/> 950 <internal_separators>,</internal_separators> 951 </prop_pattern> 952 <prop_pattern name='privileges' type='astring' 953 required='false'> 954 <common_name> 955 <loctext xml:lang='C'> 956 method credential privileges 957 </loctext> 958 </common_name> 959 <description> 960 <loctext xml:lang='C'> 961 An optional string specifying the privilege set as defined in privileges(5). 962 </loctext> 963 </description> 964 <cardinality min='1' max='1'/> 965 <internal_separators>,</internal_separators> 966 </prop_pattern> 967 <prop_pattern name='limit_privileges' type='astring' 968 required='false'> 969 <common_name> 970 <loctext xml:lang='C'> 971 method credential limit privilege set 972 </loctext> 973 </common_name> 974 <description> 975 <loctext xml:lang='C'> 976 An optional string specifying the limit privilege set as defined in 977 privileges(5). 978 </loctext> 979 </description> 980 <cardinality min='1' max='1'/> 981 <internal_separators>,</internal_separators> 982 </prop_pattern> 983 984 <!-- method_profile properties --> 985 <prop_pattern name='use_profile' type='boolean' 986 required='false'> 987 <description> 988 <loctext xml:lang='C'> 989 A boolean that specifies whether the profile should be used instead of the 990 user, group, privileges, and limit_privileges properties. 991 </loctext> 992 </description> 993 <cardinality min='1' max='1'/> 994 </prop_pattern> 995 <prop_pattern name='profile' type='astring' 996 required='false'> 997 <common_name> 998 <loctext xml:lang='C'> 999 method profile RBAC profile specification 1000 </loctext> 1001 </common_name> 1002 <description> 1003 <loctext xml:lang='C'> 1004 The name of an RBAC (role-based access control) profile which, along with the 1005 method executable, identifies an entry in exec_attr(4). 1006 </loctext> 1007 </description> 1008 <cardinality min='1' max='1'/> 1009 </prop_pattern> 1010 1011 <!-- method_environment properties --> 1012 <prop_pattern name='environment' type='astring' 1013 required='false'> 1014 <common_name> 1015 <loctext xml:lang='C'> 1016 method environment variables 1017 </loctext> 1018 </common_name> 1019 <description> 1020 <loctext xml:lang='C'> 1021 Environment variables to insert into the environment of the method, in the 1022 form of a number of NAME=value strings. 1023 </loctext> 1024 </description> 1025 </prop_pattern> 1026 </pg_pattern> 1027 1028 <pg_pattern name='refresh' type='method' target='delegate' 1029 required='false'> 1030 <description> 1031 <loctext xml:lang='C'> 1032 The refresh method defines how svc.startd should upload new configuration to the service without interrupting its operation. 1033 </loctext> 1034 </description> 1035 <prop_pattern name='exec' type='astring' 1036 required='true'> 1037 <common_name> 1038 <loctext xml:lang='C'> 1039 method executable 1040 </loctext> 1041 </common_name> 1042 <description> 1043 <loctext xml:lang='C'> 1044 The method executable may be a script, program, or keyword. 1045 </loctext> 1046 </description> 1047 <cardinality min='1' max='1'/> 1048 <values> 1049 <value name=':true'> 1050 <description> 1051 <loctext xml:lang='C'> 1052 Always returns SMF_EXIT_OK. 1053 </loctext> 1054 </description> 1055 </value> 1056 <value name=':kill [-signal]'> 1057 <description> 1058 <loctext xml:lang='C'> 1059 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. 1060 </loctext> 1061 </description> 1062 </value> 1063 </values> 1064 <choices> 1065 <include_values type='values'/> 1066 </choices> 1067 </prop_pattern> 1068 1069 <prop_pattern name='type' type='astring' 1070 required='true'> 1071 <description> 1072 <loctext xml:lang='C'> 1073 A method may only be of type method. 1074 </loctext> 1075 </description> 1076 <cardinality min='1' max='1'/> 1077 <constraints> 1078 <value name="method"/> 1079 </constraints> 1080 </prop_pattern> 1081 1082 <prop_pattern name='timeout_seconds' type='count' 1083 required='true'> 1084 <description> 1085 <loctext xml:lang='C'> 1086 Number of seconds before the method is considered unresponsive. After the method timeout expires, the method will be killed. 1087 </loctext> 1088 </description> 1089 <cardinality min='1' max='1'/> 1090 <values> 1091 <value name="0"> 1092 <common_name> 1093 <loctext xml:lang='C'> 1094 infinite 1095 </loctext> 1096 </common_name> 1097 <description> 1098 <loctext xml:lang='C'> 1099 This method will never time out. 1100 </loctext> 1101 </description> 1102 </value> 1103 <value name="-1"> 1104 <common_name> 1105 <loctext xml:lang='C'> 1106 infinite (legacy) 1107 </loctext> 1108 </common_name> 1109 <description> 1110 <loctext xml:lang='C'> 1111 This method will never time out. 0 is the preferred value. 1112 </loctext> 1113 </description> 1114 </value> 1115 </values> 1116 </prop_pattern> 1117 1118 <!-- method_context direct properties --> 1119 <prop_pattern name='working_directory' type='astring' 1120 required='false'> 1121 <description> 1122 <loctext xml:lang='C'> 1123 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. 1124 </loctext> 1125 </description> 1126 <cardinality min='1' max='1'/> 1127 </prop_pattern> 1128 <prop_pattern name='project' type='astring' 1129 required='false'> 1130 <description> 1131 <loctext xml:lang='C'> 1132 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. 1133 </loctext> 1134 </description> 1135 <cardinality min='1' max='1'/> 1136 </prop_pattern> 1137 <prop_pattern name='resource_pool' type='astring' 1138 required='false'> 1139 <common_name> 1140 <loctext xml:lang='C'> 1141 method context resource pool 1142 </loctext> 1143 </common_name> 1144 <description> 1145 <loctext xml:lang='C'> 1146 The resource pool name on which to launch the method. :default can be used 1147 as a token to indicate the pool specified in the project(4) entry given in 1148 the project attribute. 1149 </loctext> 1150 </description> 1151 <cardinality min='1' max='1'/> 1152 </prop_pattern> 1153 1154 <!-- method_credential properties --> 1155 <prop_pattern name='user' type='astring' 1156 required='false'> 1157 <common_name> 1158 <loctext xml:lang='C'> 1159 method credential user 1160 </loctext> 1161 </common_name> 1162 <description> 1163 <loctext xml:lang='C'> 1164 The user ID in numeric or text form. 1165 </loctext> 1166 </description> 1167 <cardinality min='1' max='1'/> 1168 </prop_pattern> 1169 <prop_pattern name='group' type='astring' 1170 required='false'> 1171 <common_name> 1172 <loctext xml:lang='C'> 1173 method credential group 1174 </loctext> 1175 </common_name> 1176 <description> 1177 <loctext xml:lang='C'> 1178 The group ID in numeric or text form. 1179 </loctext> 1180 </description> 1181 <cardinality min='1' max='1'/> 1182 </prop_pattern> 1183 <prop_pattern name='supp_groups' type='astring' 1184 required='false'> 1185 <common_name> 1186 <loctext xml:lang='C'> 1187 method credential supplemental groups 1188 </loctext> 1189 </common_name> 1190 <description> 1191 <loctext xml:lang='C'> 1192 An optional string that specifies the supplemental group memberships by ID, 1193 in numeric or text form. 1194 </loctext> 1195 </description> 1196 <cardinality min='1' max='1'/> 1197 <internal_separators>,</internal_separators> 1198 </prop_pattern> 1199 <prop_pattern name='privileges' type='astring' 1200 required='false'> 1201 <common_name> 1202 <loctext xml:lang='C'> 1203 method credential privileges 1204 </loctext> 1205 </common_name> 1206 <description> 1207 <loctext xml:lang='C'> 1208 An optional string specifying the privilege set as defined in privileges(5). 1209 </loctext> 1210 </description> 1211 <cardinality min='1' max='1'/> 1212 <internal_separators>,</internal_separators> 1213 </prop_pattern> 1214 <prop_pattern name='limit_privileges' type='astring' 1215 required='false'> 1216 <common_name> 1217 <loctext xml:lang='C'> 1218 method credential limit privilege set 1219 </loctext> 1220 </common_name> 1221 <description> 1222 <loctext xml:lang='C'> 1223 An optional string specifying the limit privilege set as defined in 1224 privileges(5). 1225 </loctext> 1226 </description> 1227 <cardinality min='1' max='1'/> 1228 <internal_separators>,</internal_separators> 1229 </prop_pattern> 1230 1231 <!-- method_profile properties --> 1232 <prop_pattern name='use_profile' type='boolean' 1233 required='false'> 1234 <description> 1235 <loctext xml:lang='C'> 1236 A boolean that specifies whether the profile should be used instead of the 1237 user, group, privileges, and limit_privileges properties. 1238 </loctext> 1239 </description> 1240 <cardinality min='1' max='1'/> 1241 </prop_pattern> 1242 <prop_pattern name='profile' type='astring' 1243 required='false'> 1244 <common_name> 1245 <loctext xml:lang='C'> 1246 method profile RBAC profile specification 1247 </loctext> 1248 </common_name> 1249 <description> 1250 <loctext xml:lang='C'> 1251 The name of an RBAC (role-based access control) profile which, along with the 1252 method executable, identifies an entry in exec_attr(4). 1253 </loctext> 1254 </description> 1255 <cardinality min='1' max='1'/> 1256 </prop_pattern> 1257 1258 <!-- method_environment properties --> 1259 <prop_pattern name='environment' type='astring' 1260 required='false'> 1261 <common_name> 1262 <loctext xml:lang='C'> 1263 method environment variables 1264 </loctext> 1265 </common_name> 1266 <description> 1267 <loctext xml:lang='C'> 1268 Environment variables to insert into the environment of the method, in the 1269 form of a number of NAME=value strings. 1270 </loctext> 1271 </description> 1272 </prop_pattern> 1273 </pg_pattern> 1274 1275 </template> 1276 </service> 1277 1278 </service_bundle>