1<?xml version='1.0'?> 2<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'> 3 4<!-- 5 6 CDDL HEADER START 7 8 The contents of this file are subject to the terms of the 9 Common Development and Distribution License (the "License"). 10 You may not use this file except in compliance with the License. 11 12 You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 13 or http://www.opensolaris.org/os/licensing. 14 See the License for the specific language governing permissions 15 and limitations under the License. 16 17 When distributing Covered Code, include this CDDL HEADER in each 18 file and include the License file at usr/src/OPENSOLARIS.LICENSE. 19 If applicable, add the following below this CDDL HEADER, with the 20 fields enclosed by brackets "[]" replaced with your own identifying 21 information: Portions Copyright [yyyy] [name of copyright owner] 22 23 CDDL HEADER END 24 25 Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. 26 27 Service manifests for the iSCSI Initiator 28--> 29 30<!-- 31GLXXX: Instance creation guidelines: 32 33Currently inetd doesn't support property composition in the configuration of 34it's instances. It expects to find the "proto" property in the instances 35"inetd_private" property group, and all other properties (including the 36default back ones) in the "inetd_private" property group of the service. 37This means that only the "proto" field can be specialized for an instance, which 38limits the creation of instances of a service to only those with all fields 39common, bar the "proto" field. This would enable the following two services 40to be created as instances of a common service: 41 42exec stream tcp nowait root /usr/sbin/in.rexecd in.rexecd 43exec stream tcp6 nowait root /usr/sbin/in.rexecd in.rexecd 44 45but dissallow common service create for these (different socket type): 46 47time stream tcp6 nowait root internal 48time dgram udp6 wait root internal 49 50To be more specific, for rpc services all the netids associated with the 51service would need a seperate instance creating under a common service, with 52the instance name and the "proto" being the netid. For non-rpc based 53services only services with changes limited to the "proto" field (such as 54udp/upd6 and tcp/tcp6) can have instances created under a common service - as 55in the exec example above. 56 57I neglected to mention that the composition limitation applies for methods 58also, so an instance can't have a different method than its service. 59 60Inetd is soon going to change to use instance composition for its configuration. 61This will mean that any of the properties/methods can be present in either the 62instance or the service (with the instance one overriding in the case both are 63present) and that multiple instances can be created for a service with the 64potential to specialize all the properties/methods. 65 66--> 67 68<service_bundle type='manifest' name='SUNWiscsir:iscsi-initiator'> 69 70<service 71 name='network/iscsi/initiator' 72 type='service' 73 version='1'> 74 75 <single_instance/> 76 77 <dependency 78 name='network' 79 grouping='require_any' 80 restart_on='error' 81 type='service'> 82 <service_fmri value='svc:/milestone/network' /> 83 </dependency> 84 85 <dependency 86 name='net' 87 grouping='require_all' 88 restart_on='none' 89 type='service'> 90 <service_fmri value='svc:/network/service' /> 91 </dependency> 92 93 <dependency 94 name='loopback' 95 grouping='require_any' 96 restart_on='error' 97 type='service'> 98 <service_fmri value='svc:/network/loopback' /> 99 </dependency> 100 101 <dependent 102 name='iscsi-initiator_multi-user' 103 grouping='optional_all' 104 restart_on='none'> 105 <service_fmri value='svc:/milestone/multi-user' /> 106 </dependent> 107 108 <!-- 109 Set a timeout of -1 to signify to inetd that we don't want 110 to timeout this service, since the forked process is the 111 one that does the services work. This is the case for most/all 112 legacy inetd services; for services written to take advantage 113 of Greenlines capabilities, the start method should fork 114 off a process to handle the request and return a success code. 115 --> 116 <exec_method 117 type='method' 118 name='start' 119 exec='/lib/svc/method/iscsi-initiator %m' 120 timeout_seconds='600'> 121 <method_context> 122 <method_credential 123 user='root' 124 group='root' 125 privileges='basic,sys_devices,sys_mount' 126 /> 127 </method_context> 128 </exec_method> 129 130 <exec_method 131 type='method' 132 name='stop' 133 exec='/lib/svc/method/iscsi-initiator %m' 134 timeout_seconds='600'> 135 <method_context> 136 <method_credential 137 user='root' 138 group='root' 139 privileges='basic,sys_devices,sys_mount' 140 /> 141 </method_context> 142 </exec_method> 143 144 <!-- 145 Create an enabled instance. 146 --> 147 <instance 148 name='default' 149 enabled='true' > 150 </instance> 151 152 <stability value='Evolving' /> 153 154 <template> 155 <common_name> 156 <loctext xml:lang='C'> 157 iSCSI initiator daemon 158 </loctext> 159 </common_name> 160 161 <documentation> 162 <manpage 163 title='iscsi' 164 section='4D' 165 manpath='/usr/share/man' /> 166 </documentation> 167 </template> 168</service> 169 170</service_bundle> 171