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