我有服务器程序,用C++写的.我通常是这样开始的
db_net 2> log_file
我没有使用任何关于日志(log)记录的特殊内容,只是在stderr上打印.
但是,有时候,日志(log)文件会变得很大.如果我这么做了
echo > log_file
它没有效果,文件不会尖叫到零.我知道这在10年前很管用,但现在不行了.
问题如下:
- 是否可以从操作系统端以某种方式修复此问题(我在Linux上运行),而无需重新启动应用程序
- 如果无法从操作系统修复,我可以从应用程序修复吗?我可以关闭和打开stderr,但我不知道stderr指向的文件名,因为它被重定向.C解决方案也是可以的.
我知道MySQL在flush logs;
下可以做到这一点,而apache/nginx也可以做到这一点,但是他们知道文件名,而且在他们的情况下很容易重新打开.
我知道我可以在配置中实现日志(log)文件,但目前我正在寻找快速的解决方案.
文件系统是XFS.