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