Loosing STDOUT after file rotation

Dan Nelson dnelson at allantgroup.com
Fri Apr 2 08:18:46 PST 2004


In the last episode (Apr 01), James Housley said:
> I have a program that I have the is supposed to run forever.  I log any 
> output to a log file.  It is run in a startup script like thie:
> 
> program_name >> $err_log 2>&1
> 
> The problem is that after newsyslog rotates the $err_log file, no more 
> data is written to the file.  I can not stop and restart the program.  I 
> can accept a signal.  But what do I need to do in "program_name" to allow 
> the data to be written after the "rotation" of the file.

Run "program_name 2>&1 | logger daemon.notice -t program_name", so
messages go through syslog (/etc/rc.d/bgfsck does this).  You can use
programname filtering in syslog.conf to write that output to its own
logfile.  There's nothing program_name itself can do about the problem,
since it didn't open the logfile; the shell did.

-- 
	Dan Nelson
	dnelson at allantgroup.com


More information about the freebsd-hackers mailing list