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