I'm looking for advice or suggestions for rolling log files with a daemon. I have a python script that I daemonized with http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/. Before I daemonized it it was run from a bash script that invoked the underlying python script. It ran the python script, waited for it to complete and then it slept for 5 seconds and ran it again. This was in a infinite loop. In between each invocation it checked the log file and if it was over 10MB it renamed it and then the next invocation started with a new empty log. Since each invocation was a separate run this worked fine. But now the daemonized python script doesn't exit - the same log file is attached to it forever. So my renaming of the file does nothing - the i node doesn't change and it's still logging to the same large file. Anyone have any ideas how I can achieve this sort of log rolling in this situation?
TIA! -lrry
On 12/21/2013 4:56 PM, Larry Martell wrote:
I'm looking for advice or suggestions for rolling log files with a daemon. I have a python script that I daemonized with http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/. Before I daemonized it it was run from a bash script that invoked the underlying python script. It ran the python script, waited for it to complete and then it slept for 5 seconds and ran it again. This was in a infinite loop. In between each invocation it checked the log file and if it was over 10MB it renamed it and then the next invocation started with a new empty log. Since each invocation was a separate run this worked fine. But now the daemonized python script doesn't exit - the same log file is attached to it forever. So my renaming of the file does nothing - the i node doesn't change and it's still logging to the same large file. Anyone have any ideas how I can achieve this sort of log rolling in this situation?
send a SIGHUP to syslog and it shoudl re-opent he log files.
silly question, but whats wrong with the logrotate daemon thats built into centos?
On Sat, Dec 21, 2013 at 8:52 PM, John R Pierce pierce@hogranch.com wrote:
On 12/21/2013 4:56 PM, Larry Martell wrote:
I'm looking for advice or suggestions for rolling log files with a daemon. I have a python script that I daemonized with http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/. Before I daemonized it it was run from a bash script that invoked the underlying python script. It ran the python script, waited for it to complete and then it slept for 5 seconds and ran it again. This was in a infinite loop. In between each invocation it checked the log file and if it was over 10MB it renamed it and then the next invocation started with a new empty log. Since each invocation was a separate run this worked fine. But now the daemonized python script doesn't exit - the same log file is attached to it forever. So my renaming of the file does nothing - the i node doesn't change and it's still logging to the same large file. Anyone have any ideas how I can achieve this sort of log rolling in this situation?
send a SIGHUP to syslog and it shoudl re-opent he log files.
silly question, but whats wrong with the logrotate daemon thats built into centos?
This is not using syslog. If you look at the daemonizing script I gave the link to, you pass in the log files for stdout and stderr, and it does some double fork magic and then associates the given files with them.
On 12/21/2013 6:15 PM, Larry Martell wrote:
This is not using syslog. If you look at the daemonizing script I gave the link to, you pass in the log files for stdout and stderr, and it does some double fork magic and then associates the given files with them
i rarely read links on emails, and am even less likely to do a code analysis for an offhand question unless I'm being paid.
John's suggestion is still pertinent. You'll need a SIGHUP handler in your script. Logrotate could send the SIGHUP in a postrotate 'script'.
Cheers,
Cliff
On Sun, Dec 22, 2013 at 3:15 PM, Larry Martell larry.martell@gmail.comwrote:
On Sat, Dec 21, 2013 at 8:52 PM, John R Pierce pierce@hogranch.com wrote:
On 12/21/2013 4:56 PM, Larry Martell wrote:
I'm looking for advice or suggestions for rolling log files with a daemon. I have a python script that I daemonized with
http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/ .
Before I daemonized it it was run from a bash script that invoked the underlying python script. It ran the python script, waited for it to complete and then it slept for 5 seconds and ran it again. This was in a infinite loop. In between each invocation it checked the log file and if it was over 10MB it renamed it and then the next invocation started with a new empty log. Since each invocation was a separate run this worked fine. But now the daemonized python script doesn't exit - the same log file is attached to it forever. So my renaming of the file does nothing - the i node doesn't change and it's still logging to the same large file. Anyone have any ideas how I can achieve this sort of log rolling in this situation?
send a SIGHUP to syslog and it shoudl re-opent he log files.
silly question, but whats wrong with the logrotate daemon thats built into centos?
This is not using syslog. If you look at the daemonizing script I gave the link to, you pass in the log files for stdout and stderr, and it does some double fork magic and then associates the given files with them. _______________________________________________ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
On Sat, Dec 21, 2013 at 9:46 PM, Cliff Pratt enkiduonthenet@gmail.com wrote:
John's suggestion is still pertinent. You'll need a SIGHUP handler in your script. Logrotate could send the SIGHUP in a postrotate 'script'.
Thanks!
On Sun, Dec 22, 2013 at 3:15 PM, Larry Martell larry.martell@gmail.comwrote:
On Sat, Dec 21, 2013 at 8:52 PM, John R Pierce pierce@hogranch.com wrote:
On 12/21/2013 4:56 PM, Larry Martell wrote:
I'm looking for advice or suggestions for rolling log files with a daemon. I have a python script that I daemonized with
http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/ .
Before I daemonized it it was run from a bash script that invoked the underlying python script. It ran the python script, waited for it to complete and then it slept for 5 seconds and ran it again. This was in a infinite loop. In between each invocation it checked the log file and if it was over 10MB it renamed it and then the next invocation started with a new empty log. Since each invocation was a separate run this worked fine. But now the daemonized python script doesn't exit - the same log file is attached to it forever. So my renaming of the file does nothing - the i node doesn't change and it's still logging to the same large file. Anyone have any ideas how I can achieve this sort of log rolling in this situation?
send a SIGHUP to syslog and it shoudl re-opent he log files.
silly question, but whats wrong with the logrotate daemon thats built into centos?
This is not using syslog. If you look at the daemonizing script I gave the link to, you pass in the log files for stdout and stderr, and it does some double fork magic and then associates the given files with them.