1#!/sbin/sh 2# 3# CDDL HEADER START 4# 5# The contents of this file are subject to the terms of the 6# Common Development and Distribution License (the "License"). 7# You may not use this file except in compliance with the License. 8# 9# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10# or http://www.opensolaris.org/os/licensing. 11# See the License for the specific language governing permissions 12# and limitations under the License. 13# 14# When distributing Covered Code, include this CDDL HEADER in each 15# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16# If applicable, add the following below this CDDL HEADER, with the 17# fields enclosed by brackets "[]" replaced with your own identifying 18# information: Portions Copyright [yyyy] [name of copyright owner] 19# 20# CDDL HEADER END 21# 22# 23# Copyright 2006 Sun Microsystems, Inc. All rights reserved. 24# Use is subject to license terms. 25# 26#ident "%Z%%M% %I% %E% SMI" 27# 28# Service Method Support Script for the SLP service 29# 30# - operates a proxy for slpd which brings up the JVM to run slpd 31# when required by a client; this prevents keeping JVM's alive 32# when the service is not in use. 33# 34 35. /lib/svc/share/smf_include.sh 36 37CONF=/etc/inet/slp.conf 38JAVA_BIN=/usr/j2se/bin/java 39CLASSPATH=/usr/share/lib/slp/slpd.jar 40MAIN_CLASS=com.sun.slp.slpd 41SLPD_HOME=/usr/lib/inet 42SLPD=slpd 43SLPD_BIN=$SLPD_HOME/$SLPD 44 45case "$1" in 46'start') 47 # Start slpd proxy (as a fragile dependency, conf file must exist) 48 $SLPD_BIN -f $CONF >/dev/msglog 2>&1 & 49 ;; 50 51'stop') 52 # Kill the slpd proxy. 53 /usr/bin/pkill -x -u 0 -P 1 -z `smf_zonename` $SLPD 54 55 # If a configuration file exists signal a shutdown to the real slpd. 56 [ -f $CONF ] && { 57 $JAVA_BIN -classpath $CLASSPATH \ 58 $MAIN_CLASS stop -f $CONF >/dev/msglog 2>&1 & 59 60 # Give the above slpd instance a chance to signal 61 # a shutdown to the real slpd instance. If after 62 # this time it has hung kill it. 63 sleep 5 64 65 # The pattern must not exceed 80 chars! 66 /usr/bin/pkill -x -f -u 0 -P 1,$$ -z `smf_zonename` \ 67 "${JAVA_BIN}.*-classpath ${CLASSPATH} .*" 68 } 69 70 # Kill the slpd proxy service contract 71 smf_kill_contract $2 TERM 1 72 [ $? -ne 0 ] && exit 1 73 ;; 74*) 75 echo "Usage: $0 { start | stop }" 76 exit 1 77 ;; 78esac 79exit 0 80