Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Apr 2004 10:18:44 -0600
From:      Dan Nelson <dnelson@allantgroup.com>
To:        James Housley <jim@thehousleys.net>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Loosing STDOUT after file rotation
Message-ID:  <20040402161844.GB6724@dan.emsphone.com>
In-Reply-To: <406C8F4F.1040306@Thehousleys.net>
References:  <406C8F4F.1040306@Thehousleys.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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@allantgroup.com



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