summaryrefslogtreecommitdiff
path: root/usr/src/cmd/initpkg/rc2.sh
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/cmd/initpkg/rc2.sh')
-rw-r--r--usr/src/cmd/initpkg/rc2.sh120
1 files changed, 120 insertions, 0 deletions
diff --git a/usr/src/cmd/initpkg/rc2.sh b/usr/src/cmd/initpkg/rc2.sh
new file mode 100644
index 0000000000..979890592f
--- /dev/null
+++ b/usr/src/cmd/initpkg/rc2.sh
@@ -0,0 +1,120 @@
+#!/sbin/sh
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T.
+# All rights reserved.
+#
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+# ident "%Z%%M% %I% %E% SMI"
+
+# Run Commands executed when the system is changing to init state 2,
+# traditionally called "multi-user". Pick up start-up packages for mounts,
+# daemons, services, etc.
+
+PATH=/usr/sbin:/usr/bin
+
+if [ -z "$SMF_RESTARTER" ]; then
+ echo "Cannot be run outside smf(5)"
+ exit 1
+fi
+
+action=$1
+
+# Export boot parameters to rc scripts
+
+set -- `/usr/bin/who -r`
+
+_INIT_RUN_LEVEL="$7" # Current run-level
+_INIT_RUN_NPREV="$8" # Number of times previously at current run-level
+_INIT_PREV_LEVEL="$9" # Previous run-level
+
+set -- `/usr/bin/uname -a`
+
+_INIT_UTS_SYSNAME="$1" # Operating system name (uname -s)
+_INIT_UTS_NODENAME="$2" # Node name (uname -n)
+_INIT_UTS_RELEASE="$3" # Operating system release (uname -r)
+_INIT_UTS_VERSION="$4" # Operating system version (uname -v)
+_INIT_UTS_MACHINE="$5" # Machine class (uname -m)
+_INIT_UTS_ISA="$6" # Instruction set architecture (uname -p)
+_INIT_UTS_PLATFORM="$7" # Platform string (uname -i)
+
+export _INIT_RUN_LEVEL _INIT_RUN_NPREV _INIT_PREV_LEVEL \
+ _INIT_UTS_SYSNAME _INIT_UTS_NODENAME _INIT_UTS_RELEASE _INIT_UTS_VERSION \
+ _INIT_UTS_MACHINE _INIT_UTS_ISA _INIT_UTS_PLATFORM
+
+_INIT_ZONENAME=`/sbin/zonename`
+
+export _INIT_ZONENAME
+
+if [ "$_INIT_ZONENAME" = "global" ]; then
+ # Export net boot configuration strategy. _INIT_NET_IF is set to the
+ # interface name of the netbooted interface if this is a net boot.
+ # _INIT_NET_STRATEGY is set to the network configuration strategy.
+ set -- `/sbin/netstrategy`
+ if [ $? -eq 0 ]; then
+ if [ "$1" = "nfs" -o "$1" = "cachefs" ]; then
+ _INIT_NET_IF="$2"
+ fi
+ _INIT_NET_STRATEGY="$3"
+ export _INIT_NET_IF _INIT_NET_STRATEGY
+ fi
+fi
+
+case $action in
+ stop)
+ if [ -d /etc/rc2.d ]; then
+ for f in /etc/rc2.d/K*; do
+ if [ ! -s $f ]; then
+ continue
+ fi
+
+ case $f in
+ *.sh) /lib/svc/bin/lsvcrun -s $f \
+ stop ;;
+ *) /lib/svc/bin/lsvcrun $f stop ;;
+ esac
+ done
+ fi
+ ;;
+
+ start)
+ for f in /etc/rc2.d/S*; do
+ if [ -s $f ]; then
+ case $f in
+ *.sh) /lib/svc/bin/lsvcrun -s $f \
+ start ;;
+ *) /lib/svc/bin/lsvcrun $f start ;;
+ esac
+ fi
+ done
+ ;;
+
+ *)
+ echo "Invalid argument"
+ exit 1
+esac
+
+exit 0