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