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