summaryrefslogtreecommitdiff
path: root/usr/src/cmd/syslogd/system-log
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/cmd/syslogd/system-log')
-rw-r--r--usr/src/cmd/syslogd/system-log86
1 files changed, 66 insertions, 20 deletions
diff --git a/usr/src/cmd/syslogd/system-log b/usr/src/cmd/syslogd/system-log
index 3290b5d47c..b7608219fc 100644
--- a/usr/src/cmd/syslogd/system-log
+++ b/usr/src/cmd/syslogd/system-log
@@ -19,34 +19,80 @@
#
# CDDL HEADER END
#
-#
# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# ident "%Z%%M% %I% %E% SMI"
+OLD_CONF=/etc/default/syslogd
+
. /lib/svc/share/smf_include.sh
-if [ -f /etc/syslog.conf -a -f /usr/sbin/syslogd ]; then
- if smf_is_globalzone; then
- #
- # Before syslogd starts, save any messages from
- # previous crash dumps so that messages appear
- # in chronological order.
- #
- /usr/bin/savecore -m
- if [ -r /etc/dumpadm.conf ]; then
- . /etc/dumpadm.conf
- [ -n "$DUMPADM_DEVICE" -a \
- "x$DUMPADM_DEVICE" != xswap ] && \
- /usr/bin/savecore -m -f $DUMPADM_DEVICE
+convert()
+{
+ svccfg -s svc:/system/system-log setprop config/log_from_remote = $1
+ if [ $? -ne 0 ]; then
+ svccfg -s svc:/system/system-log addpg config application
+ svccfg -s svc:/system/system-log \
+ addpropvalue config/log_from_remote boolean: $1
+ if [ $? -ne 0 ] ; then
+ echo 'Failed to set remote syslog-logging'
+ exit $SMF_EXIT_ERR_CONFIG
fi
fi
- if [ ! -f /var/adm/messages ]; then
- /usr/bin/cp /dev/null /var/adm/messages
- /usr/bin/chmod 0644 /var/adm/messages
- fi
- /usr/sbin/syslogd >/dev/msglog 2>&1 &
-else
+ echo "Incorporated ${OLD_CONF} settings into SMF. See syslogd(1m)."
+ awk '{
+ if ($1 ~ /^LOG_FROM_REMOTE=/) {
+ print "# LOG_FROM_REMOTE is now set using "
+ "svccfg(1m), see syslog(1m).";
+ } else {
+ print $0;
+ }
+ }' ${OLD_CONF} >${OLD_CONF}.new && cp ${OLD_CONF}.new ${OLD_CONF}
+ rm -f ${OLD_CONF}.new
+}
+
+if [ ! -f /etc/syslog.conf ]; then
+ echo "/etc/syslog.conf is missing. Exiting."
+ exit $SMF_EXIT_ERR_CONFIG
+fi
+
+if [ ! -x /usr/sbin/syslogd ]; then
+ echo "Executable /usr/sbin/syslogd not found. Exiting"
exit $SMF_EXIT_ERR_CONFIG
fi
+
+if smf_is_globalzone; then
+ #
+ # Before syslogd starts, save any messages from
+ # previous crash dumps so that messages appear
+ # in chronological order.
+ #
+ /usr/bin/savecore -m
+ if [ -r /etc/dumpadm.conf ]; then
+ . /etc/dumpadm.conf
+ [ -n "$DUMPADM_DEVICE" -a \
+ "x$DUMPADM_DEVICE" != xswap ] && \
+ /usr/bin/savecore -m -f $DUMPADM_DEVICE
+ fi
+fi
+if [ ! -f /var/adm/messages ]; then
+ /usr/bin/cp /dev/null /var/adm/messages
+ /usr/bin/chmod 0644 /var/adm/messages
+fi
+remote=`awk -F= '
+ /^LOG_FROM_REMOTE=[yY][Ee][Ss]/ {print "true"}
+ /^LOG_FROM_REMOTE=[Nn][Oo]/ {print "false"}' < ${OLD_CONF}`
+case ${remote} in
+"")
+ ;;
+"true"|"false")
+ convert ${remote}
+ ;;
+*)
+ echo "Unsupported value in for LOG_FROM_REMOTE in ${OLD_CONF}"
+ exit $SMF_EXIT_ERR_CONFIG
+ ;;
+esac
+
+/usr/sbin/syslogd >/dev/msglog 2>&1 &