I'm trying to setup multiple instances of rsyslog (one for kernel messages) using lfs-bootscripts-20120116 and running into some problems.
I'm using rsyslogd 5.8.6, which is designed with multiple instance support. I've set up one configuration file (/etc/rsysklog.conf) for the kernel logger and one for the system logger (/etc/rsyslog.conf) rsyslogd's -i flag specifies the pid file used and -f specifies the configuration file. > root:~# source /lib/lsb/init-functions > > root:~# start_daemon -p /run/rsyslogd.pid /sbin/rsyslogd -i /run/rsyslogd.pid > -f /etc/rsyslog.conf > root:~# echo $? > 0 Now let's check: > root:~# ps xa | grep rsyslogd > 8045 ? Sl 0:00 /sbin/rsyslogd -i /run/rsyslogd/pid -f > /etc/rsyslog.conf > 8131 tty1 s+ 0:00 grep rsyslog > > root:~# stausproc -p /run/rsyslogd.pid /rsbin/rsyslogd > rsyslogd is running with Process ID(s) 8045 > > root:# cat /run/rsyslogd.pid > 8045 So far so good. But now let's try running the second instance. > root:~# start_daemon -p /run/rsysklogd.pid /sbin/rsyslogd -i > /run/rsysklogd.pid -f /etc/rsysklog.conf > root:~# echo $? > 0 and now check: > root:~# ps xa | grep rsyslogd > 8045 ? Sl 0:00 /sbin/rsyslogd -i /run/rsyslogd.pid -f > /etc/rsyslog.conf > 8133 tty1 s+ 0:00 grep rsyslog What? Note that rsyslog behaves as expected: > root:~# sbin/rsyslogd -i /run/rsysklogd.pid -f /etc/rsysklog.conf > root:~# echo $? > 0 > > root:~# ps xa | grep rsyslogd > 8045 ? Sl 0:00 /sbin/rsyslogd -i /run/rsyslogd.pid -f > /etc/rsyslog.conf > 8149 ? Sl 0:00 /sbin/rsyslogd -i /run/rsysklogd.pid -f > /etc/rsysklog.conf > 8155 tty1 s+ 0:00 grep rsyslog > > root:~# cat /run/rsyslogd.pid > 8045 > root:~# cat /run/rsysklogd.pid > 8149 So far, I think I've tracked the problem down to statusproc() not correctly using the pidfile it's given. Namely: this is correct > root:~# statusproc -p /run/rsyslogd.pid /sbin/rsyslogd > rsyslogd is running with Process ID(s) 8045 > > root:~# cat /run/rsyslogd.pid > 8045 But this is not > root:~# statusproc -p /run/rsysklogd.pid /sbin/rsyslogd > rsyslogd is running with Process ID(s) 8045 > > root:~# cat /run/rsysklogd.pid > 8149 BTW: statusproc() defined in /lib/lsb/init-functions has an "exit 1" just after it prints its Usage statement; shouldn't this be a "return 1" instead? BTW2: statusproc()'s Usage statement says : echo "Usage: [-p pidfile] statusproc {program}" Shouldn't this be this? echo "Usage: statusproc [-p pidfile] {program}" -- http://linuxfromscratch.org/mailman/listinfo/lfs-dev FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page