我正在编写一个新的守护进程,它将在Debian Linux上托管.
我发现/ var/log只有root权限,因此我的守护进程无法在那里写日志文件.
但是,如果它在那里写入,它似乎将获得自动日志轮换,并且也可以像用户期望的那样工作.
守护进程编写/ var/log中出现的日志条目的推荐方法是什么,而不必以root身份运行?
守护程序是一个Web服务器,因此日志流量将类似于Apache.
您应该创建一个子目录,例如/var/log/mydaemon
拥有守护程序的用户所有权
以root身份在那里创建一个日志文件,并将文件所有者更改为webserver用户:
# touch /var/log/myserver.log # chown wwwuser /var/log/myserver.log
然后,如果以用户身份运行,服务器可以写入文件wwwuser
.但它不会获得自动日志轮换.您必须将日志文件添加到/etc/logrotate.conf
或,/etc/logrotate.d/...
并在logrotate发出信号时让服务器重新打开日志文件.
您可能还会使用syslog
日志记录,如果这更符合您的情况.