xref: /illumos-gate/usr/src/cmd/initpkg/init.d/sysetup (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
29if [ -z "$_INIT_PREV_LEVEL" ]; then
30	set -- `/usr/bin/who -r`
31	_INIT_PREV_LEVEL="$9"
32fi
33
34[ $_INIT_PREV_LEVEL != S -a $_INIT_PREV_LEVEL != 1 ] && exit 0
35
36# Uncomment this line to print the complete system configuration on startup
37#[ -x /usr/sbin/prtconf ] && /usr/sbin/prtconf
38
39# If there are trademark files, print them.
40
41[ -d /etc/tm ] && /usr/bin/cat /etc/tm/* 2>/dev/null
42
43#
44# Set default scheduling class
45#
46if [ -f /etc/dispadmin.conf ] && [ -x /usr/sbin/dispadmin ] && \
47     [ -x /usr/bin/priocntl ] && \
48     [ "${_INIT_ZONENAME:=`/sbin/zonename`}" = "global" ]; then
49	ERROR="$0: cannot set default scheduling class to "
50	DISPADMIN_D=`/usr/sbin/dispadmin -d`
51
52	if [ $? -eq 0 ]; then
53		#
54		# Inform the kernel about the default scheduling class.
55		#
56		dispadmin -u
57
58		DEFAULT_SCHEDULER=`echo $DISPADMIN_D | \
59			/usr/bin/awk '{ print $1 }'`
60
61		/usr/bin/priocntl -s -c $DEFAULT_SCHEDULER \
62			-i all >/dev/null 2>&1
63
64		if [ $? -ne 0 ]; then
65			echo $ERROR $DEFAULT_SCHEDULER
66		else
67			#
68			# Also need to move init process explicitly
69			# because it was ignored by "-i all".
70			#
71			/usr/bin/priocntl -s -c $DEFAULT_SCHEDULER \
72				-i pid 1 >/dev/null 2>&1
73			if [ $? -ne 0 ]; then
74				echo $ERROR $DEFAULT_SCHEDULER
75			fi
76		fi
77	fi
78fi
79
80#
81# Run rctladm to configure system resource controls based on the settings
82# previously saved by rctladm.  See rctladm(1m) for instructions on how to
83# modify resource control settings.
84#
85if [ -f /etc/rctladm.conf ] && [ -x /usr/sbin/rctladm ]; then
86	/usr/sbin/rctladm -u
87fi
88
89#
90# Run pooladm to configure system pools.  See pooladm(1m) for more information.
91#
92if [ -f /etc/pooladm.conf ] && [ -x /usr/sbin/pooladm ] && \
93    [ "$_INIT_ZONENAME" = "global" ]; then
94	/usr/sbin/pooladm -e
95	/usr/sbin/pooladm -c
96fi
97