Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Sep 2005 16:24:15 +0100
From:      Alex Zbyslaw <xfb52@dial.pipex.com>
To:        Ashley Moran <ashley.moran@codeweavers.net>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Trying to colour syslog-ng logs to ttyv7 but won't work after a	reboot
Message-ID:  <4329921F.2070006@dial.pipex.com>
In-Reply-To: <43298076.7050705@codeweavers.net>
References:  <43298076.7050705@codeweavers.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Ashley Moran wrote:

> I have a 5.4-STABLE server that I've reconfigured to use syslog-ng 
> instead of syslogd.  It collects logs from all our servers and sorts 
> them into per-host folders.
>
> Our network admin showed me his gentoo machine earlier which uses ccze 
> to colour log files as they scroll up the screen.  He wanted a 
> high-res display with our whole network's logs scrolling in the 
> background (as much for the geek-porn factor as the usefulness).
>
> After a lot of hacking and patching I managed to get the machine 
> running 1024x768.  I installed ccze, then modified syslog-ng.conf to 
> use it as a destination:
>
>     destination term { program("ccze -r > /dev/ttyv7"); };
>
> I set syslog-ng to log all remote logs to this destination, and after 
> re-starting syslog-ng to reload the config, it worked fine.  However, 
> for some reason way beyond me, it *will not work* after a reboot.  I 
> have to restart syslog-ng after a reboot before it will log to the 
> virtual terminal.
>
> Here is the startup script I created in /usr/local/etc/rc.d/syslog-ng.sh:
>
> (the mountcritremote and cleanvar requirements I copied from the 
> syslogd file - I assume I want devfs to access /dev/ttyv7)
>
>     #!/bin/sh
>     #
>     
>     # PROVIDE: syslogng
>     # REQUIRE: devfs mountcritremote cleanvar
>     # BEFORE: SERVERS
>     
>     . /etc/rc.subr
>     
>     name="syslogng"
>     rcvar=`set_rcvar`
>     required_files="/usr/local/etc/syslog-ng/syslog-ng.conf"
>     command="/usr/local/sbin/syslog-ng"
>     
>     load_rc_config $name
>     run_rc_command "$1"
>
>
>
> Maybe this is some subtle quirk of the boot process that I haven't 
> understood.  Can anybody help?
>
The requirements like BEFORE: SERVERS are not honoured by scripts in 
/usr/local/etc/rc.d.  Try placing the script in /etc/rc.d calling it say 
syslogng (i.e. without the .sh).

man rc has more info, as would scanning back through the freebsd-rc 
archives.  I believe that work to make scripts in /usr/local/etc/rc.d 
work more like system scripts will appear sometime in 6.X, though full 
integration is, I believe, not expected until 7.X.

Right now, your syslogng will be being started *after* lots of servers 
that might expect to talk to it.  I assume you put syslogng_enable="YES" 
into /etc/rc.conf? as well as syslogd_enable="NO".  (Or, it might work 
just to change syslogd_program="/path/to/syslogngd" and not bother with 
changing anything else).

--Alex




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4329921F.2070006>