diff options
Diffstat (limited to 'usr/src/cmd/syslogd/system-log')
-rw-r--r-- | usr/src/cmd/syslogd/system-log | 86 |
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 & |