edit · history · print

Solaris 10 x86 quick reference guide

This small guide details a number of useful commands for those who are not that familiar with Solaris 10.

Starting/stopping a service

To stop/start a service (similar to /etc/rc.d/init.d/service stop/start in Linux) is:

svcadm disable/enable [-t] servicename

the option -t makes the change temporary (e.g. stopping a service now, but it'll come back after a reboot). Without it the change is permanent until a new state is set. Hence if you want to disable a service only temporarily without affecting what happens at system startup, use the -t option, otherwise don't.

Creating new services

I have created a few example xml and method files and they can be used. For example for dCache pool startup the following XML file has to be placed in /var/svc/manifest/site/

<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<!--
    Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
    Use is subject to license terms.

    pragma ident        "@(#)dcache-pool.xml 1.2     04/08/09 SMI"
-->

<service_bundle type='manifest' name='OPTnew:dcache-pool'>

<service
    name='site/dcache-pool'
    type='service'
    version='1'>

    <single_instance />

	<dependency name='multi-user'
            grouping='require_all'
            restart_on='error'
            type='service'>
                <service_fmri value='svc:/milestone/multi-user:default'/>
        </dependency>

        <exec_method
            type='method'
            name='start'
            exec='/lib/svc/method/dcache-pool start'
            timeout_seconds='30' />

        <exec_method
            type='method'
            name='stop'
            exec='/lib/svc/method/dcache-pool stop'
            timeout_seconds='30' />

        <property_group name='startd' type='framework'>
                <propval name='duration' type='astring' value='transient' />
        </property_group>

        <instance name='default' enabled='true' />

        <stability value='Unstable' />

        <template>
                <common_name>
                        <loctext xml:lang='C'>
                                dCache POOL
                        </loctext>
                </common_name>
        </template>
</service>

</service_bundle>

And a respective method (which is referred to by the XML) in /lib/svc/method/

#!/sbin/sh
#
# Copyright (c) 2008 by Mario Kadastik
# All rights reserved.
#
#ident  "@(#)dcache-pool 

case "$1" in
'start')
	cd /opt/d-cache/bin
	bash dcache-pool start
	;;

'stop')
        cd /opt/d-cache/bin
	bash dcache-pool stop
	;;

*)
	echo "Usage: $0 { start | stop }"
	;;
esac
exit 0

once that is done you can validate and import the service:

# svccfg
svc:> validate /var/svc/manifest/site/dcache-pool.xml 
svc:> import /var/svc/manifest/site/dcache-pool.xml 
svc:> 

and voila the service is there in svcs:

$ svcs|grep dcache-pool
online         Mar_30   svc:/site/dcache-pool:default
edit · history · print
Page last modified on April 04, 2008, at 10:07 AM