1*a192e900Samaguire#!/sbin/sh 2*a192e900Samaguire# 3*a192e900Samaguire# CDDL HEADER START 4*a192e900Samaguire# 5*a192e900Samaguire# The contents of this file are subject to the terms of the 6*a192e900Samaguire# Common Development and Distribution License (the "License"). 7*a192e900Samaguire# You may not use this file except in compliance with the License. 8*a192e900Samaguire# 9*a192e900Samaguire# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10*a192e900Samaguire# or http://www.opensolaris.org/os/licensing. 11*a192e900Samaguire# See the License for the specific language governing permissions 12*a192e900Samaguire# and limitations under the License. 13*a192e900Samaguire# 14*a192e900Samaguire# When distributing Covered Code, include this CDDL HEADER in each 15*a192e900Samaguire# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16*a192e900Samaguire# If applicable, add the following below this CDDL HEADER, with the 17*a192e900Samaguire# fields enclosed by brackets "[]" replaced with your own identifying 18*a192e900Samaguire# information: Portions Copyright [yyyy] [name of copyright owner] 19*a192e900Samaguire# 20*a192e900Samaguire# CDDL HEADER END 21*a192e900Samaguire# 22*a192e900Samaguire# 23*a192e900Samaguire# Copyright 2006 Sun Microsystems, Inc. All rights reserved. 24*a192e900Samaguire# Use is subject to license terms. 25*a192e900Samaguire# 26*a192e900Samaguire# ident "%Z%%M% %I% %E% SMI" 27*a192e900Samaguire 28*a192e900Samaguire# This script is the shared method script for the legacy ipv4/ipv6 29*a192e900Samaguire# routing services. 30*a192e900Samaguire 31*a192e900Samaguire. /lib/svc/share/smf_include.sh 32*a192e900Samaguire 33*a192e900Samaguiredaemon_prog=`/usr/sbin/svccfg -s $SMF_FMRI listprop routeadm/daemon | \ 34*a192e900Samaguire /usr/bin/nawk '{ for (i = 3; i <= NF; i++) printf $i" " }' | \ 35*a192e900Samaguire /usr/bin/nawk '{ sub(/^\"/,""); sub(/\"[ \t]*$/,""); print }'` 36*a192e900Samaguiredaemon_args=`/usr/sbin/svccfg -s $SMF_FMRI listprop routeadm/daemon-args | \ 37*a192e900Samaguire /usr/bin/nawk '{ for (i = 3; i <= NF; i++) printf $i" " }' | \ 38*a192e900Samaguire /usr/bin/nawk '{ sub(/^\"/,""); sub(/\"[ \t]*$/,""); print }'` 39*a192e900Samaguiredaemon_stop=`/usr/sbin/svccfg -s $SMF_FMRI listprop routeadm/daemon-stop-cmd | \ 40*a192e900Samaguire /usr/bin/nawk '{ for (i = 3; i <= NF; i++) printf $i" " }' | \ 41*a192e900Samaguire /usr/bin/nawk '{ sub(/^\"/,""); sub(/\"[ \t]*$/,""); print }'` 42*a192e900Samaguire 43*a192e900Samaguiremethod="$1" 44*a192e900Samaguireproto="$2" 45*a192e900Samaguire 46*a192e900Samaguirecase "$method" in 47*a192e900Samaguire'start' ) 48*a192e900Samaguire # No legacy daemon specified. 49*a192e900Samaguire if [ -z "$daemon_prog" ]; then 50*a192e900Samaguire echo "${proto}-routing-daemon not specified by routeadm." 51*a192e900Samaguire exit $SMF_EXIT_ERR_CONFIG 52*a192e900Samaguire fi 53*a192e900Samaguire # No legacy stop command specified. 54*a192e900Samaguire if [ -z "$daemon_stop" ]; then 55*a192e900Samaguire echo "${proto}-routing-stop-cmd not specified by routeadm." 56*a192e900Samaguire exit $SMF_EXIT_ERR_CONFIG 57*a192e900Samaguire fi 58*a192e900Samaguire smf_is_globalzone || exit $SMF_EXIT_OK 59*a192e900Samaguire 60*a192e900Samaguire # Run daemon - fail if it does not successfully daemonize. 61*a192e900Samaguire eval "$daemon_prog $daemon_args" 62*a192e900Samaguire if [ "$?" != "0" ]; then 63*a192e900Samaguire echo "Error: $daemon $daemon_args failed to daemonize." 64*a192e900Samaguire exit $SMF_EXIT_ERR_FATAL 65*a192e900Samaguire fi 66*a192e900Samaguire # Create pidfile. 67*a192e900Samaguire daemon_name=`/usr/bin/basename $daemon_prog` 68*a192e900Samaguire /usr/bin/pgrep -P 1 -f $daemon_prog > /var/tmp/${daemon_name}.pid 69*a192e900Samaguire ;; 70*a192e900Samaguire'stop' ) 71*a192e900Samaguire smf_is_globalzone || exit $SMF_EXIT_OK 72*a192e900Samaguire 73*a192e900Samaguire # Stop daemon - ignore result. 74*a192e900Samaguire if [ -n "$daemon_stop" ]; then 75*a192e900Samaguire eval "$daemon_stop" 76*a192e900Samaguire fi 77*a192e900Samaguire ;; 78*a192e900Samaguire'*' ) 79*a192e900Samaguire echo "Usage: $0 { start | stop }" 80*a192e900Samaguire exit $SMF_EXIT_ERR_FATAL 81*a192e900Samaguire ;; 82*a192e900Samaguireesac 83*a192e900Samaguire 84*a192e900Samaguireexit "$SMF_EXIT_OK" 85