Welcome to Snooda's Blog
lighttpd日志切分
[
|
2012/03/09 18:56]


之前在读代码的时候发现lighttpd在收到SIGHUP信号后会把日志重新打开一下,一直没有理解这么做的意义是什么。今天终于用到了这个功能。
一个新模块没有使用cronlog等日志切分工具,直接打印日志到文件,(使用管道切分日志有风险,被打印程序一旦hang住,lighttpd也就卡住了),但如何切分日志文件就变成了一个问题。mv的话由于不改变inode,还是往同一个文件打。cp代价太大。直接清空日志的话又太粗暴。这里就用到了sighup功能。只要将文件mv到新名字,然后用killall -s SIGHUP lighttpd,这样lighttpd就会自动重新打开lighttpd.log打印了。
一个新模块没有使用cronlog等日志切分工具,直接打印日志到文件,(使用管道切分日志有风险,被打印程序一旦hang住,lighttpd也就卡住了),但如何切分日志文件就变成了一个问题。mv的话由于不改变inode,还是往同一个文件打。cp代价太大。直接清空日志的话又太粗暴。这里就用到了sighup功能。只要将文件mv到新名字,然后用killall -s SIGHUP lighttpd,这样lighttpd就会自动重新打开lighttpd.log打印了。