Greetings All!
Syslog's -a option allows it to listen on multiple socket files. So for example, if I want syslog to listen on /dev/log (the standard socket file) as well as /tmp/custom.log the command would look something like this:
Code:
/sbin/syslogd -a /tmp/custom.log
The expected result is for syslog to do it's normal thing as well as create the /tmp/custom.log socket if it doesn't exist and go about it's business. When I run the command manually from the command line, syslog obediently creates the socket specified and everything works fantastically. I've added the appropriate configuration details to /etc/sysconfig/syslog but when I issue /etc/init.d/syslog restart, syslog seems to completely disregard my socket file and does not create it. When I run a process listing I see the following:
Code:
ps waux | grep syslog
root 18674 0.0 0.0 1612 572 ? Ss 10:45 0:00 syslogd -a /tmp/custom.log
As you can see, the process was run with my flag and argument but syslog just seems to disregard the information. Here is a clip of my /etc/sysconfig/syslog:
Code:
SYSLOGD_OPTIONS="-a /tmp/custom.log"
Here is a clip of the /etc/init.d/syslog file:
Code:
#!/bin/bash
#
# syslog Starts syslogd/klogd.
#
#
# chkconfig: 2345 12 88
# description: Syslog is the facility by which many daemons use to log \
# messages to various system log files. It is a good idea to always \
# run syslog.
### BEGIN INIT INFO
# Provides: $syslog
### END INIT INFO
# Source function library.
. /etc/init.d/functions
[ -f /sbin/syslogd ] || exit 0
[ -f /sbin/klogd ] || exit 0
# Source config
if [ -f /etc/sysconfig/syslog ] ; then
. /etc/sysconfig/syslog
else
SYSLOGD_OPTIONS="-m 0"
KLOGD_OPTIONS="-2"
fi
RETVAL=0
umask 077
start() {
echo -n $"Starting system logger: "
daemon syslogd $SYSLOGD_OPTIONS
RETVAL=$?
echo
echo -n $"Starting kernel logger: "
daemon klogd $KLOGD_OPTIONS
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/syslog
return $RETVAL
}
stop() {
echo -n $"Shutting down kernel logger: "
killproc klogd
echo
echo -n $"Shutting down system logger: "
killproc syslogd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/syslog
return $RETVAL
}
rhstatus() {
status syslogd
status klogd
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
rhstatus
;;
restart|reload)
restart
;;
condrestart)
[ -f /var/lock/subsys/syslog ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart}"
exit 1
esac
exit $?
Again, if I were to copy the executed line from the process listing and run it manually as root on the command line everything works as expected. Can anyone shed some light on this problem?
thanks!