xref: /illumos-gate/usr/src/cmd/syslogd/system-log (revision 0ea5e3a571e3da934507bdd32924d11659c70704)
17c478bd9Sstevel@tonic-gate#!/sbin/sh
27c478bd9Sstevel@tonic-gate#
37c478bd9Sstevel@tonic-gate# CDDL HEADER START
47c478bd9Sstevel@tonic-gate#
57c478bd9Sstevel@tonic-gate# The contents of this file are subject to the terms of the
66927f468Sdp# Common Development and Distribution License (the "License").
76927f468Sdp# You may not use this file except in compliance with the License.
87c478bd9Sstevel@tonic-gate#
97c478bd9Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
107c478bd9Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing.
117c478bd9Sstevel@tonic-gate# See the License for the specific language governing permissions
127c478bd9Sstevel@tonic-gate# and limitations under the License.
137c478bd9Sstevel@tonic-gate#
147c478bd9Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each
157c478bd9Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
167c478bd9Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the
177c478bd9Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying
187c478bd9Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner]
197c478bd9Sstevel@tonic-gate#
207c478bd9Sstevel@tonic-gate# CDDL HEADER END
217c478bd9Sstevel@tonic-gate#
226927f468Sdp# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
237c478bd9Sstevel@tonic-gate# Use is subject to license terms.
247c478bd9Sstevel@tonic-gate#
257c478bd9Sstevel@tonic-gate# ident	"%Z%%M%	%I%	%E% SMI"
267c478bd9Sstevel@tonic-gate
27*0ea5e3a5SjjjOLD_CONF=/etc/default/syslogd
28*0ea5e3a5Sjjj
297c478bd9Sstevel@tonic-gate. /lib/svc/share/smf_include.sh
307c478bd9Sstevel@tonic-gate
31*0ea5e3a5Sjjjconvert()
32*0ea5e3a5Sjjj{
33*0ea5e3a5Sjjj	svccfg -s svc:/system/system-log setprop config/log_from_remote = $1
34*0ea5e3a5Sjjj	if [ $? -ne 0 ]; then
35*0ea5e3a5Sjjj		svccfg -s svc:/system/system-log addpg config application
36*0ea5e3a5Sjjj		svccfg -s svc:/system/system-log \
37*0ea5e3a5Sjjj		    addpropvalue config/log_from_remote boolean: $1
38*0ea5e3a5Sjjj		if [ $? -ne 0 ] ; then
39*0ea5e3a5Sjjj			echo 'Failed to set remote syslog-logging'
40*0ea5e3a5Sjjj			exit $SMF_EXIT_ERR_CONFIG
41*0ea5e3a5Sjjj		fi
42*0ea5e3a5Sjjj	fi
43*0ea5e3a5Sjjj	echo "Incorporated ${OLD_CONF} settings into SMF. See syslogd(1m)."
44*0ea5e3a5Sjjj	awk '{
45*0ea5e3a5Sjjj		if ($1 ~ /^LOG_FROM_REMOTE=/) {
46*0ea5e3a5Sjjj			print "# LOG_FROM_REMOTE is now set using "
47*0ea5e3a5Sjjj			    "svccfg(1m), see syslog(1m).";
48*0ea5e3a5Sjjj		} else {
49*0ea5e3a5Sjjj			print $0;
50*0ea5e3a5Sjjj		}
51*0ea5e3a5Sjjj	}' ${OLD_CONF} >${OLD_CONF}.new && cp ${OLD_CONF}.new ${OLD_CONF}
52*0ea5e3a5Sjjj	rm -f ${OLD_CONF}.new
53*0ea5e3a5Sjjj}
54*0ea5e3a5Sjjj
55*0ea5e3a5Sjjjif [ ! -f /etc/syslog.conf ]; then
56*0ea5e3a5Sjjj	echo "/etc/syslog.conf is missing. Exiting."
57*0ea5e3a5Sjjj	exit $SMF_EXIT_ERR_CONFIG
58*0ea5e3a5Sjjjfi
59*0ea5e3a5Sjjj
60*0ea5e3a5Sjjjif [ ! -x /usr/sbin/syslogd ]; then
61*0ea5e3a5Sjjj	echo "Executable /usr/sbin/syslogd not found. Exiting"
62*0ea5e3a5Sjjj	exit $SMF_EXIT_ERR_CONFIG
63*0ea5e3a5Sjjjfi
64*0ea5e3a5Sjjj
656927f468Sdpif smf_is_globalzone; then
667c478bd9Sstevel@tonic-gate	#
677c478bd9Sstevel@tonic-gate	# Before syslogd starts, save any messages from
687c478bd9Sstevel@tonic-gate	# previous crash dumps so that messages appear
697c478bd9Sstevel@tonic-gate	# in chronological order.
707c478bd9Sstevel@tonic-gate	#
717c478bd9Sstevel@tonic-gate	/usr/bin/savecore -m
727c478bd9Sstevel@tonic-gate	if [ -r /etc/dumpadm.conf ]; then
737c478bd9Sstevel@tonic-gate		. /etc/dumpadm.conf
747c478bd9Sstevel@tonic-gate		[ -n "$DUMPADM_DEVICE" -a \
757c478bd9Sstevel@tonic-gate	    	"x$DUMPADM_DEVICE" != xswap ] && \
767c478bd9Sstevel@tonic-gate	    	/usr/bin/savecore -m -f $DUMPADM_DEVICE
777c478bd9Sstevel@tonic-gate	fi
787c478bd9Sstevel@tonic-gatefi
797c478bd9Sstevel@tonic-gateif [ ! -f /var/adm/messages ]; then
807c478bd9Sstevel@tonic-gate	/usr/bin/cp /dev/null /var/adm/messages
817c478bd9Sstevel@tonic-gate	/usr/bin/chmod 0644 /var/adm/messages
827c478bd9Sstevel@tonic-gatefi
83*0ea5e3a5Sjjjremote=`awk -F= '
84*0ea5e3a5Sjjj	/^LOG_FROM_REMOTE=[yY][Ee][Ss]/ {print "true"}
85*0ea5e3a5Sjjj	/^LOG_FROM_REMOTE=[Nn][Oo]/     {print "false"}' < ${OLD_CONF}`
86*0ea5e3a5Sjjjcase ${remote} in
87*0ea5e3a5Sjjj"")
88*0ea5e3a5Sjjj    ;;
89*0ea5e3a5Sjjj"true"|"false")
90*0ea5e3a5Sjjj    convert ${remote}
91*0ea5e3a5Sjjj    ;;
92*0ea5e3a5Sjjj*)
93*0ea5e3a5Sjjj    echo "Unsupported value in for LOG_FROM_REMOTE in ${OLD_CONF}"
947c478bd9Sstevel@tonic-gate    exit $SMF_EXIT_ERR_CONFIG
95*0ea5e3a5Sjjj    ;;
96*0ea5e3a5Sjjjesac
97*0ea5e3a5Sjjj
98*0ea5e3a5Sjjj/usr/sbin/syslogd >/dev/msglog 2>&1 &
99