#!/bin/sh # # Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved. # # Second SNDR start script # - called after the TCP/IP stack has been initialised, # and networking enabled. # # - should be linked to /etc/rc2.d/S72rdcfinish as follows: # # ln /etc/init.d/rdc /etc/rc2.d/S72rdcfinish # PATH=/etc:/bin RDCD="/usr/lib/sndrd" RDCSYNCD="/usr/lib/sndrsyncd" USAGE="Usage: $0 start" . /lib/svc/share/smf_include.sh # There is a cluster and default instance of this service. # We only want to run this script once when the cluster mode # and service ($SMF_FMRI) match. # Check if in cluster (cl_mode = 0) or not (cl_mode=1) # and do the following on start: # cl_mode=0 and nws_rdcsyncd:cluster, continue # cl_mode=0 and nws_rdcsyncd:default, exit # cl_mode=1 and nws_rdcsyncd:default, continue # cl_mode=1 and nws_rdcsyncd:cluster, disable nws_rdcsyncd:cluster to prevent # dependency problems and exit # CLINFO=/usr/sbin/clinfo if [ -x "$CLINFO" ] then ${CLINFO} cl_mode=$? else cl_mode=1 fi case "$1" in 'start') if [ $cl_mode -eq 1 -a "$SMF_FMRI" = svc:/system/nws_rdcsyncd:cluster ] then smf_method_exit $SMF_EXIT_TEMP_DISABLE cluster_mode \ "$SMF_FMRI is not supported in cluster mode" fi if [ $cl_mode -eq 0 -a "$SMF_FMRI" = svc:/system/nws_rdcsyncd:default ] then exit $SMF_EXIT_OK fi echo "Completing SNDR startup:\c" ## ## Start sndrd ## if [ ! -f ${RDCD} ] then echo "Cannot find ${RDCD}.\nSNDR services unavailable." > /dev/console exit $SMF_EXIT_MON_OFFLINE fi ps -e | grep sndrd > /dev/null 2>&1 if [ $? -ne 0 ]; then ${RDCD} echo " sndrd\c" else echo " sndrd already enabled\c" fi ## ## Start sndrsyncd ## if [ ! -f ${RDCSYNCD} ] then echo "\nCannot find ${RDCSYNCD}.\nSNDR start aborted." > /dev/console exit $SMF_EXIT_MON_OFFLINE fi ps -e | grep sndrsyn > /dev/null 2>&1 if [ $? -ne 0 ]; then ${RDCSYNCD} echo " sndrsyncd\c" else echo " sndrsyncd already running\c" fi echo " done" ;; 'stop') # Inserted for symmetry ;; *) echo $USAGE exit 1 ;; esac exit $SMF_EXIT_OK