1 () () 2 3 4 5 <?xml version="1.0" encoding="UTF-8"?> <!-- 6 Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. 7 8 CDDL HEADER START 9 10 The contents of this file are subject to the terms of the 11 Common Development and Distribution License (the "License"). 12 You may not use this file except in compliance with the License. 13 14 You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 15 or http://www.opensolaris.org/os/licensing. 16 See the License for the specific language governing permissions 17 and limitations under the License. 18 19 When distributing Covered Code, include this CDDL HEADER in each 20 file and include the License file at usr/src/OPENSOLARIS.LICENSE. 21 If applicable, add the following below this CDDL HEADER, with the 22 fields enclosed by brackets "[]" replaced with your own identifying 23 information: Portions Copyright [yyyy] [name of copyright owner] 24 25 CDDL HEADER END --> 26 27 <!-- 28 Service description DTD 29 30 Most attributes are string values (or an individual string from a 31 restricted set), but attributes with a specific type requirement are 32 noted in the comment describing the element. --> 33 34 <!-- 35 XInclude support 36 37 A series of service bundles may be composed via the xi:include tag. 38 smf(5) tools enforce that all bundles be of the same type. --> 39 40 <!-- 41 These entities are used for the property, propval and property_group 42 elements, that require type attributes for manifest, while for profiles 43 the type attributes are only implied. --> 44 45 <!ENTITY % profile "IGNORE"> <!ENTITY % manifest "INCLUDE"> 46 47 <!ELEMENT xi:include 48 (xi:fallback) 49 > <!ATTLIST xi:include 50 href CDATA #REQUIRED 51 parse (xml|text) "xml" 52 encoding CDATA #IMPLIED 53 xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude" 54 > 55 56 <!ELEMENT xi:fallback 57 ANY 58 > <!ATTLIST xi:fallback 59 xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude" 60 > 61 62 <!-- 63 stability 64 65 This element associates an SMI stability level with the parent 66 element. See attributes(5) for an explanation of interface 67 stability levels. 68 69 Its attribute is 70 71 value The stability level of the parent element. --> 72 73 <!ELEMENT stability EMPTY> 74 75 <!ATTLIST stability value ( Standard | Stable | Evolving | 76 Unstable | External | Obsolete ) #REQUIRED > 77 78 <!-- Property value lists --> 79 80 <!-- 81 value_node 82 83 This element represents a single value within any of the typed 84 property value lists. 85 86 Its attribute is 87 88 value The value for this node in the list. --> 89 90 <!ELEMENT value_node EMPTY> 91 92 <!ATTLIST value_node value CDATA #REQUIRED> 93 94 <!-- 95 count_list 96 integer_list 97 opaque_list 98 host_list 99 hostname_list 100 net_address_list 101 net_address_v4_list 102 net_address_v6_list 103 time_list 104 astring_list 105 ustring_list 106 boolean_list 107 fmri_list 108 uri_list 109 110 These elements represent the typed lists of values for a property. 111 Each contains one or more value_node elements representing each 112 value on the list. 113 114 None of these elements has attributes. --> 115 116 <!ELEMENT count_list ( value_node+ )> 117 118 <!ATTLIST count_list> 119 120 <!ELEMENT integer_list ( value_node+ )> 121 122 <!ATTLIST integer_list> 123 124 <!ELEMENT opaque_list ( value_node+ )> 125 126 <!ATTLIST opaque_list> 127 128 <!ELEMENT host_list ( value_node+ )> 129 130 <!ATTLIST host_list> 131 132 <!ELEMENT hostname_list ( value_node+ )> 133 134 <!ATTLIST hostname_list> 135 136 <!ELEMENT net_address_list ( value_node+ )> 137 138 <!ATTLIST net_address_list> 139 140 <!ELEMENT net_address_v4_list ( value_node+ )> 141 142 <!ATTLIST net_address_v4_list> 143 144 <!ELEMENT net_address_v6_list ( value_node+ )> 145 146 <!ATTLIST net_address_v6_list> 147 148 <!ELEMENT time_list ( value_node+ )> 149 150 <!ATTLIST time_list> 151 152 <!ELEMENT astring_list ( value_node+ )> 153 154 <!ATTLIST astring_list> 155 156 <!ELEMENT ustring_list ( value_node+ )> 157 158 <!ATTLIST ustring_list> 159 160 <!ELEMENT boolean_list ( value_node+ )> 161 162 <!ATTLIST boolean_list> 163 164 <!ELEMENT fmri_list ( value_node+ )> 165 166 <!ATTLIST fmri_list> 167 168 <!ELEMENT uri_list ( value_node+ )> 169 170 <!ATTLIST uri_list> 171 172 <!-- Properties and property groups --> 173 174 <!-- 175 property 176 177 This element is for a singly or multiply valued property within a 178 property group. It contains an appropriate value list element, 179 which is expected to be consistent with the type attribute. 180 181 Its attributes are 182 183 name The name of this property. 184 185 type The data type for this property. 186 187 override These values should replace values already in the 188 repository. --> 189 190 <![%profile;[ <!ELEMENT property ( count_list | integer_list | opaque_list | 191 host_list | hostname_list | net_address_list | net_address_v4_list | 192 net_address_v6_list | time_list | astring_list | ustring_list | 193 boolean_list | fmri_list | uri_list )? > 194 195 <!ATTLIST property name CDATA #REQUIRED type ( count | integer 196 | opaque | host | hostname | net_address | net_address_v4 | 197 net_address_v6 | time | astring | ustring | boolean | fmri | uri ) 198 #IMPLIED override ( true | false ) "false" > ]]> <![%manifest;[ 199 <!ELEMENT property ( count_list | integer_list | opaque_list | host_list | 200 hostname_list | net_address_list | net_address_v4_list | 201 net_address_v6_list | time_list | astring_list | ustring_list | 202 boolean_list | fmri_list | uri_list )? > 203 204 <!ATTLIST property name CDATA #REQUIRED type ( count | integer 205 | opaque | host | hostname | net_address | net_address_v4 | 206 net_address_v6 | time | astring | ustring | boolean | fmri | uri ) 207 #REQUIRED override ( true | false ) "false" > ]]> 208 209 <!-- 210 propval 211 212 This element is for a singly valued property within a property 213 group. List-valued properties must use the property element above. 214 215 Its attributes are 216 217 name The name of this property. 218 219 type The data type for this property. 220 221 value The value for this property. Must match type 222 restriction of type attribute. 223 224 override This value should replace any values already in the 225 repository. --> 226 227 <![%profile;[ <!ELEMENT propval EMPTY> 228 229 <!ATTLIST propval name CDATA #REQUIRED type ( count | integer 230 | opaque | host | hostname | net_address | net_address_v4 | 231 net_address_v6 | time | astring | ustring | boolean | fmri | uri ) 232 #IMPLIED value CDATA #REQUIRED override ( true | false ) 233 "false" > ]]> 234 235 <![%manifest;[ <!ELEMENT propval EMPTY> 236 237 <!ATTLIST propval name CDATA #REQUIRED type ( count | integer 238 | opaque | host | hostname | net_address | net_address_v4 | 239 net_address_v6 | time | astring | ustring | boolean | fmri | uri ) 240 #REQUIRED value CDATA #REQUIRED override ( true | false ) 241 "false" > ]]> 242 243 <!-- 244 property_group 245 246 This element is for a set of related properties on a service or 247 instance. It contains an optional stability element, as well as 248 zero or more property-containing elements. 249 250 Its attributes are 251 252 name The name of this property group. 253 254 type A category for this property group. Groups of type 255 "framework", "implementation" or "template" are primarily of interest 256 to the service management facility, while groups of type "application" 257 are expected to be only of interest to the service to which this group 258 is attached. Other types may be introduced using the service symbol 259 namespace conventions. 260 261 delete If in the repository, this property group should be removed. 262 --> 263 264 <![%profile;[ <!ELEMENT property_group ( stability?, ( propval | property )* 265 )> 266 267 <!ATTLIST property_group name CDATA #REQUIRED type CDATA 268 #IMPLIED delete ( true | false ) "false" > ]]> 269 270 <![%manifest;[ <!ELEMENT property_group ( stability?, ( propval | 271 property )* )> 272 273 <!ATTLIST property_group name CDATA #REQUIRED type CDATA 274 #REQUIRED delete ( true | false ) "false" > ]]> 275 276 <!-- 277 service_fmri 278 279 This element defines a reference to a service FMRI (for either a 280 service or an instance). 281 282 Its attribute is 283 284 value The FMRI. --> 285 286 <!ELEMENT service_fmri EMPTY> 287 288 <!ATTLIST service_fmri value CDATA #REQUIRED> 289 290 <!-- Dependencies --> 291 292 <!-- 293 dependency 294 295 This element identifies a group of FMRIs upon which the service is 296 in some sense dependent. Its interpretation is left to the 297 restarter to which a particular service instance is delegated. It 298 contains a group of service FMRIs, as well as a block of properties. 299 300 Its attributes are 301 302 name The name of this dependency. 303 304 grouping The relationship between the various FMRIs grouped 305 here; "require_all" of the FMRIs to be online, "require_any" of the 306 FMRIs to be online, or "exclude_all" of the FMRIs from being online 307 or in maintenance for the dependency to be satisfied. 308 "optional_all" dependencies are satisfied when all of the FMRIs are 309 either online or unable to come online (because they are disabled, 310 misconfigured, or one of their dependencies is unable to come online). 311 312 restart_on The type of events from the FMRIs that the service should 313 be restarted for. "error" restarts the service if the dependency is 314 restarted due to hardware fault. "restart" restarts the service if the 315 dependency is restarted for any reason, including hardware fault. 316 "refresh" restarts the service if the dependency is refreshed or 317 restarted for any reason. "none" will never restart the service due to 318 dependency state changes. 319 320 type The type of dependency: on another service ('service'), on a 321 filesystem path ('path'), or another dependency type. 322 323 delete This dependency should be deleted. --> 324 325 <!ELEMENT dependency ( service_fmri*, stability?, ( propval | property )* 326 ) > 327 328 <!ATTLIST dependency name CDATA #REQUIRED grouping ( require_all 329 | require_any | exclude_all | optional_all ) #REQUIRED 330 restart_on ( error | restart | refresh | none ) #REQUIRED type 331 CDATA #REQUIRED delete ( true | false ) "false" > 332 333 <!-- Dependents --> 334 335 <!-- 336 dependent 337 338 This element identifies a service which should depend on this service. It 339 corresponds to a dependency in the named service. The grouping and type 340 attributes of that dependency are implied to be "require_all" and 341 "service", respectively. 342 343 Its attributes are 344 345 name The name of the dependency property group to create in the 346 dependent entity. 347 348 grouping The grouping relationship of the dependency property 349 group to create in the dependent entity. See "grouping" attribute on 350 the dependency element. 351 352 restart_on The type of events from this service that the named service 353 should be restarted for. 354 355 delete True if this dependent should be deleted. 356 357 override Whether to replace an existing dependent of the same name. 358 359 --> 360 361 <!ELEMENT dependent ( service_fmri, stability?, ( propval | property )* ) 362 > 363 364 <!ATTLIST dependent name CDATA #REQUIRED grouping ( require_all 365 | require_any | exclude_all | optional_all) #REQUIRED 366 restart_on ( error | restart | refresh | none) #REQUIRED delete 367 ( true | false ) "false" override ( true | false ) "false" > 368 369 <!-- Method execution context, security profile, and credential definitions 370 --> 371 372 <!-- 373 envvar 374 375 An environment variable. It has two attributes: 376 377 name The name of the environment variable. value The value of the 378 environment variable. --> 379 380 <!ELEMENT envvar EMPTY> 381 382 <!ATTLIST envvar name CDATA #REQUIRED value CDATA 383 #REQUIRED > 384 385 <!-- 386 method_environment 387 388 This element defines the environment for a method. It has no 389 attributes, and one or more envvar child elements. --> 390 391 <!ELEMENT method_environment (envvar+) > 392 393 <!ATTLIST method_environment> 394 395 <!-- 396 method_profile 397 398 This element indicates which exec_attr(5) profile applies to the 399 method context being defined. 400 401 Its attribute is 402 403 name The name of the profile. --> 404 405 <!ELEMENT method_profile EMPTY> 406 407 <!ATTLIST method_profile name CDATA #REQUIRED > 408 409 <!-- 410 method_credential 411 412 This element specifies credential attributes for the execution 413 method to use. 414 415 Its attributes are 416 417 user The user ID, in numeric or text form. 418 419 group The group ID, in numeric or text form. If absent or 420 ":default", the group associated with the user in the passwd database. 421 422 supp_groups Supplementary group IDs to be associated with the 423 method, separated by commas or spaces. If absent or ":default", 424 initgroups(3C) will be used. 425 426 privileges An optional string specifying the privilege set. 427 428 limit_privileges An optional string specifying the limit 429 privilege set. --> 430 431 <!ELEMENT method_credential EMPTY> 432 433 <!ATTLIST method_credential user CDATA #REQUIRED group 434 CDATA #IMPLIED supp_groups CDATA #IMPLIED privileges CDATA 435 #IMPLIED limit_privileges CDATA #IMPLIED > 436 437 <!-- 438 method_context 439 440 This element combines credential and resource management attributes 441 for execution methods. It may contain a method_environment, or 442 a method_profile or method_credential element. 443 444 Its attributes are 445 446 working_directory The home directory to launch the method from. 447 ":default" can be used as a token to indicate use of the user 448 specified by the credential or profile specified. 449 450 project The project ID, in numeric or text form. ":default" can 451 be used as a token to indicate use of the project identified by 452 getdefaultproj(3PROJECT) for the non-root user specified by the 453 credential or profile specified. If the user is root, ":default" 454 designates the project the restarter is running in. 455 456 resource_pool The resource pool name to launch the method on. 457 ":default" can be used as a token to indicate use of the pool 458 specified in the project(4) entry given in the "project" attribute 459 above. --> <!ELEMENT method_context ( (method_profile | 460 method_credential)?, method_environment? ) > 461 462 <!ATTLIST method_context security_flags CDATA #IMPLIED 463 working_directory CDATA #IMPLIED project CDATA #IMPLIED 464 resource_pool CDATA #IMPLIED > 465 466 <!-- Restarter delegation, methods, and monitors --> 467 468 <!-- 469 exec_method 470 471 This element describes one of the methods used by the designated 472 restarter to act on the service instance. Its interpretation is 473 left to the restarter to which a particular service instance is 474 delegated. It contains a set of attributes, an optional method 475 context, and an optional stability element for the optional 476 properties that can be included. 477 478 Its attributes are 479 480 type The type of method, either "method" or "monitor". 481 482 name Name of this execution method. The method names are usually 483 a defined interface of the restarter to which an instance of this 484 service is delegated. 485 486 exec The string identifying the action to take. For 487 svc.startd(1M), this is a string suitable to pass to exec(2). 488 489 timeout_seconds [integer] Duration, in seconds, to wait for this 490 method to complete. A '0' or '-1' denotes an infinite timeout. 491 492 delete If in the repository, the property group for this method 493 should be removed. --> 494 495 <!ELEMENT exec_method ( method_context?, stability?, ( propval | property 496 )* ) > 497 498 <!ATTLIST exec_method type ( method | monitor ) #REQUIRED name 499 CDATA #REQUIRED exec CDATA #REQUIRED timeout_seconds CDATA 500 #REQUIRED delete ( true | false ) "false" > 501 502 <!-- 503 restarter 504 505 A flag element identifying the restarter to which this service or 506 service instance is delegated. Contains the FMRI naming the 507 delegated restarter. 508 509 This element has no attributes. --> 510 511 <!ELEMENT restarter ( service_fmri ) > 512 513 <!ATTLIST restarter> 514 515 <!-- 516 Templates --> 517 518 <!-- 519 doc_link 520 521 The doc_link relates a resource described by the given URI to the 522 service described by the containing template. The resource is 523 expected to be a documentation or elucidatory reference of some 524 kind. 525 526 Its attributes are 527 528 name A label for this resource. 529 530 uri A URI to the resource. --> 531 532 <!ELEMENT doc_link EMPTY> 533 534 <!ATTLIST doc_link name CDATA #REQUIRED uri CDATA #REQUIRED > 535 536 <!-- 537 manpage 538 539 The manpage element connects the reference manual page to the 540 template's service. 541 542 Its attributes are 543 544 title The manual page title. 545 546 section The manual page's section. 547 548 manpath The MANPATH environment variable, as described in man(1) 549 that is required to reach the named manual page --> 550 551 <!ELEMENT manpage EMPTY> 552 553 <!ATTLIST manpage title CDATA #REQUIRED section CDATA 554 #REQUIRED manpath CDATA ":default" > 555 556 <!-- 557 documentation 558 559 The documentation element groups an arbitrary number of doc_link 560 and manpage references. 561 562 It has no attributes. --> 563 564 <!ELEMENT documentation ( doc_link | manpage )* > 565 566 <!ATTLIST documentation> 567 568 <!-- 569 loctext 570 571 The loctext element is a container for localized text. 572 573 Its sole attribute is 574 575 xml:lang The name of the locale, in the form accepted by LC_ALL, 576 etc. See locale(5). --> <!ELEMENT loctext 577 (#PCDATA) > 578 579 <!ATTLIST loctext 580 xml:lang CDATA #REQUIRED > 581 582 <!-- 583 description 584 585 The description holds a set of potentially longer, localized strings that 586 consist of a short description of the service. 587 588 The description has no attributes. --> <!ELEMENT description 589 ( loctext+ ) > 590 591 <!ATTLIST description> 592 593 <!-- 594 common_name 595 596 The common_name holds a set of short, localized strings that 597 represent a well-known name for the service in the given locale. 598 599 The common_name has no attributes. --> <!ELEMENT common_name 600 ( loctext+ ) > 601 602 <!ATTLIST common_name> 603 604 <!-- 605 units 606 607 The units a numerical property is expressed in. --> 608 609 <!ELEMENT units ( loctext+ ) > 610 611 <!ATTLIST units> 612 613 <!-- 614 visibility 615 616 Expresses how a property is typically accessed. This isn't 617 intended as access control, but as an indicator as to how a 618 property is used. 619 620 Its attributes are: 621 622 value 'hidden', 'readonly', or 'readwrite' indicating that the 623 property should be hidden from the user, shown but read-only, or 624 modifiable. --> 625 626 <!ELEMENT visibility EMPTY> 627 628 <!ATTLIST visibility value ( hidden | readonly | readwrite ) #REQUIRED 629 > 630 631 <!-- 632 value 633 634 Describes a legal value for a property value, and optionally contains a 635 human-readable name and description for the specified property 636 value. 637 638 Its attributes are: 639 640 name A string representation of the value. --> 641 642 <!ELEMENT value ( common_name?, description? ) > 643 644 <!ATTLIST value name CDATA #REQUIRED > 645 646 <!-- 647 values 648 649 Human-readable names and descriptions for valid values of a property. --> 650 651 <!ELEMENT values (value+) > 652 653 <!ATTLIST values> 654 655 <!-- 656 cardinality 657 658 Places a constraint on the number of values the property can take 659 on. 660 661 Its attributes are: min minimum number of values max maximum 662 number of values 663 664 Both attributes are optional. If min is not specified, it defaults to 665 0. If max is not specified it indicates an unlimited number of values. 666 If neither is specified this indicates 0 or more values. --> 667 668 <!ELEMENT cardinality EMPTY> 669 670 <!ATTLIST cardinality min CDATA "0" max CDATA 671 "18446744073709551615"> 672 673 <!-- 674 internal_separators 675 676 Indicates the separators used within a property's value used to 677 separate the actual values. Used in situations where multiple 678 values are packed into a single property value instead of using a 679 multi-valued property. --> 680 681 <!ELEMENT internal_separators (#PCDATA) > 682 683 <!ATTLIST internal_separators> 684 685 <!-- 686 range 687 688 Indicates a range of possible integer values. 689 690 Its attributes are: 691 692 min The minimum value of the range (inclusive). 693 max The maximum value of the range (inclusive). --> 694 695 <!ELEMENT range EMPTY> 696 697 <!ATTLIST range min CDATA #REQUIRED max CDATA #REQUIRED > 698 699 <!-- 700 constraints 701 702 Provides a set of constraints on the values a property can take on. --> 703 704 <!ELEMENT constraints ( value*, range* ) > <!ATTLIST constraints> 705 706 <!-- 707 include_values 708 709 Includes an entire set of values in the choices block. 710 711 Its attributes are: 712 713 type Either "constraints" or "values", indicating an 714 inclusion of all values allowed by the property's constraints or all 715 values for which there are human-readable names and descriptions, 716 respectively. --> 717 718 <!ELEMENT include_values EMPTY> 719 720 <!ATTLIST include_values type ( constraints | values ) #REQUIRED > 721 722 <!-- 723 choices 724 725 Provides a set of common choices for the values a property can take 726 on. Useful in those cases where the possibilities are unenumerable 727 or merely inconveniently legion, and a manageable subset is desired 728 for presentation in a user interface. --> 729 730 <!ELEMENT choices ( value*, range*, include_values* ) > 731 732 <!ATTLIST choices> 733 734 <!-- 735 prop_pattern 736 737 738 The prop_pattern describes one property of the enclosing property group 739 pattern. 740 741 Its attributes are: 742 743 name The property's name. type The property's type. 744 required If the property group is present, this property is required. 745 746 type can be omitted if required is false. --> 747 748 <!ELEMENT prop_pattern ( common_name?, description?, units?, visibility?, 749 cardinality?, internal_separators?, values?, constraints?, choices? ) > 750 751 <!ATTLIST prop_pattern name CDATA #REQUIRED type ( count 752 | integer | opaque | host | hostname | net_address | net_address_v4 753 | net_address_v6 | time | astring | ustring | boolean | fmri | 754 uri ) #IMPLIED required ( true | false ) "false" > 755 756 <!-- 757 pg_pattern 758 759 The pg_pattern describes one property group. 760 Depending on the element's attributes, these descriptions may apply 761 to just the enclosing service/instance, instances of the enclosing 762 service, delegates of the service (assuming it is a restarter), or 763 all services. 764 765 Its attributes are: 766 767 name The property group's name. If not specified, it matches 768 all property groups with the specified type. type The property group's 769 type. If not specified, it matches all property groups with the 770 specified name. required If the property group is required. 771 target The scope of the pattern, which may be all, delegate, 772 instance, or this. 'all' is reserved for framework use and applies 773 the template to all services on the system. 'delegate' is reserved 774 for restarters, and means the template applies to all services which 775 use the restarter. 'this' would refer to the defining service or 776 instance. 'instance' can only be used in a service's template block, 777 and means the definition applies to all instances of this service. 778 779 --> 780 781 <!ELEMENT pg_pattern ( common_name?, description?, prop_pattern* ) > 782 783 <!ATTLIST pg_pattern name CDATA "" type CDATA "" 784 required ( true | false ) "false" target ( this | instance | 785 delegate | all ) "this" > 786 787 <!-- 788 template 789 790 The template contains a collection of metadata about the service. 791 It contains a localizable string that serves as a common, 792 human-readable name for the service. (This name should be less than 793 60 characters in a single byte locale.) The template may optionally 794 contain a longer localizable description of the service, a 795 collection of links to documentation, either in the form of manual 796 pages or in the form of URI specifications to external documentation 797 sources (such as docs.sun.com). 798 799 The template has no attributes. --> <!ELEMENT template 800 ( common_name, description?, documentation?, pg_pattern* ) > 801 802 <!ATTLIST template> 803 804 <!-- Notification Parameters --> 805 806 <!ELEMENT paramval EMPTY> 807 808 <!ATTLIST paramval name CDATA #REQUIRED value CDATA 809 #REQUIRED> 810 811 <!ELEMENT parameter ( value_node* )> 812 813 <!ATTLIST parameter name CDATA #REQUIRED> 814 815 <!ELEMENT event EMPTY> 816 817 <!ATTLIST event value CDATA #REQUIRED> 818 819 <!ELEMENT type ( ( parameter | paramval )* )> 820 821 <!ATTLIST type name CDATA #REQUIRED active ( true | 822 false ) "true" > 823 824 <!-- 825 notification parameters 826 827 This element sets the notification parameters for Software Events and 828 Fault Management problem lifecycle events. --> 829 830 <!ELEMENT notification_parameters ( event, type+ )> 831 832 <!ATTLIST notification_parameters> 833 834 <!-- Services and instances --> 835 836 <!-- 837 create_default_instance 838 839 A flag element indicating that an otherwise empty default instance 840 of this service (named "default") should be created at install, with 841 its enabled property set as given. 842 843 Its attribute is 844 845 enabled [boolean] The initial value for the enabled state of 846 this instance. --> 847 848 <!ELEMENT create_default_instance EMPTY > 849 850 <!ATTLIST create_default_instance enabled ( true | false ) #REQUIRED > 851 852 <!-- 853 single_instance 854 855 A flag element stating that this service can only have a single 856 instance on a particular system. --> 857 858 <!ELEMENT single_instance EMPTY> 859 860 <!ATTLIST single_instance> 861 862 <!-- 863 instance 864 865 The service instance is the object representing a software component 866 that will run on the system if enabled. It contains an enabled 867 element, a set of dependencies on other services, potentially 868 customized methods or configuration data, an optional method 869 context, and a pointer to its restarter. (If no restarter is 870 specified, the master restarter, svc.startd(1M), is assumed to be 871 responsible for the service.) 872 873 Its attributes are 874 875 name The canonical name for this instance of the service. 876 877 enabled [boolean] The initial value for the enabled state of 878 this instance. --> 879 880 <!ELEMENT instance ( restarter?, dependency*, dependent*, method_context?, 881 exec_method*, notification_parameters*, property_group*, template? ) > 882 883 <!ATTLIST instance name CDATA #REQUIRED enabled ( true | 884 false ) #REQUIRED > 885 886 <!-- 887 service 888 889 The service contains the set of instances defined by default for 890 this service, an optional method execution context, any default 891 methods, the template, and various restrictions or advice applicable 892 at installation. The method execution context and template elements 893 are required for service_bundle documents with type "manifest", but 894 are optional for "profile" or "archive" documents. 895 896 Its attributes are 897 898 name The canonical name for the service. 899 900 version [integer] The integer version for this service. 901 902 type Whether this service is a simple service, a delegated 903 restarter, or a milestone (a synthetic service that collects a group 904 of dependencies). --> 905 906 <!ELEMENT service ( create_default_instance?, single_instance?, restarter?, 907 dependency*, dependent*, method_context?, exec_method*, 908 notification_parameters*, property_group*, instance*, stability?, template? ) 909 > 910 911 <!ATTLIST service name CDATA #REQUIRED version CDATA 912 #REQUIRED type ( service | restarter | milestone ) #REQUIRED > 913 914 <!-- 915 service_bundle 916 917 The bundle possesses two attributes: 918 919 type How this file is to be understood by the framework (or 920 used in a non-framework compliant way). Standard types are 921 'archive', 'manifest', and 'profile'. name A name for the bundle. 922 Manifests should be named after the package which delivered them; 923 profiles should be named after the "feature set nickname" they intend to 924 enable. --> 925 926 <!ELEMENT service_bundle ( service_bundle* | service* | xi:include* )> 927 928 <!ATTLIST service_bundle type CDATA #REQUIRED name CDATA 929 #REQUIRED> 930 931 932 933 August 29, 2016 ()