| Current File : //etc/init.d/rdcfinish |
#!/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