假设我有一个日志文件 /opt/mydata.log。如果应用程序正在写入它,我可以删除它吗?假设我成功删除它,由于进程仍在运行,是否仍然可以读取已删除的日志?此外,如果进程仍在运行但日志文件已被删除,操作系统是否能够回收日志使用的空间?
答案1
如果在写入时删除它(具体取决于写入方法),它将使用新数据重新创建,或者空间将继续写入但文件将无法访问。第三种情况是,文件在每个新数据块上写入/关闭,因此您将收到“文件未找到”或其他类型的错误。
对于第一种情况,您都可以想办法动态读取日志(仅限新数据)。
在第一种情况下,操作系统都无法声明磁盘空间,直到进程结束、停止或被终止。(例外情况取决于写入日志的软件的编码方式)...