Today I’ve been fighting with Solaris 10 and the SMF Manifest (others would call it init-script …). Since I wanted to do it the proper way (I could have used a “old-style” init-script, but I didn’t wanna ..), I ended up combing the interweb for examples .. As it turns out, not even IBM has documented a way, on how to do this.
In the end this is what I’ve come up with:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| <?xml version='1.0'?>
<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
<!--
mkdir /var/svc/manifest/application/dsmc
chmod 755 /var/svc/manifest/application/dsmc
chown root:bin /var/svc/manifest/application/dsmc
<den inhalt dieser datei per vi nach /var/svc/manifest/application/dsmc/dsmc.xml importieren
svcadm -v import /var/svc/manifest/application/dsmc/dsmc.xml
svcadm enable application/dsmc
-->
<service_bundle type='manifest' name='TIVsmCba:dsmc'>
<service name='application/dsmc' type='service' version='0'>
<create_default_instance enabled='true'/>
<single_instance/>
<dependency name='fs-local' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/system/filesystem/local'/>
</dependency>
<dependency name='net-physical' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/network/physical'/>
</dependency>
<exec_method name='start' type='method' exec='/opt/tivoli/tsm/client/ba/bin/dsmc.helper' timeout_seconds='60'>
<method_context working_directory='/opt/tivoli/tsm/client/ba/bin'/>
</exec_method>
<exec_method name='stop' type='method' exec='/usr/bin/pkill dsmc' timeout_seconds='60'>
<method_context/>
</exec_method>
<stability value='Unstable'/>
<template>
<common_name>
<loctext xml:lang='C'>Tivoli Storage Manager Client Scheduler</loctext>
</common_name>
</template>
</service>
</service_bundle>
|
However, in order to get the scheduler client working on Solaris, I had to create a little helper script in /opt/tivoli/tsm/client/ba/bin named dsmc.helper:
1
2
3
4
5
6
7
| #!/bin/bash
export DSM_DIR="/opt/tivoli/tsm/client/ba/bin"
export DSM_LOG="/opt/tivoli/tsm/client/ba/bin"
export DSM_CONFIG="/usr/bin/dsm.opt"
$DSM_DIR/dsmc sched &>/dev/null &
|
With that, I was able to automate the TSM Scheduler Client startup on Solaris.