有一个用 C 开发的在 unix 环境下运行的服务器代码,服务器将 STDOUT/STDERR 重定向到日志如下
static gboolean
create_log_file (const char *log_file)
{
int log_file_fd;
g_return_val_if_fail (log_file != NULL, FALSE);
log_file_fd = open (log_file, O_WRONLY|O_CREAT|O_TRUNC, 0644);
if (log_file_fd < 0)
{
return FALSE;
}
dup2 (log_file_fd, 1);
dup2 (log_file_fd, 2);
close (log_file_fd);
return TRUE;
}
计划为此日志文件设置归档/清除 cron,以确保磁盘使用量在限制范围内。
日志记录工作得很好,直到清除 cron 启动并删除日志文件。
观察 cron 运行后的日志文件删除,STDERR 跟踪停止并且不再创建文件?