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 37 CONF=/etc/inet/slp.conf 38 JAVA_BIN=/usr/java/bin/java 39 CLASSPATH=/usr/share/lib/slp/slpd.jar 40 MAIN_CLASS=com.sun.slp.slpd 41 SLPD_HOME=/usr/lib/inet 42 SLPD=slpd 43 SLPD_BIN=$SLPD_HOME/$SLPD 44 45 case "$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 ;; 78 esac 79 exit 0