gpt4 book ai didi

linux - 在 Linux 中删除不影响 StreamWriter 的文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:49:09 25 4
gpt4 key购买 nike

在 Windows 中,文件在 StreamWriter 中打开时会被锁定(通常情况下),但在 Linux 中,您可以在文件使用时删除/取消链接。

我有一个 .Net Core systemd 服务正在使用 StreamWriter 写入文件。如果文件被删除,服务会继续写入 StreamWriter,不会抛出任何异常。我认为这是预期的行为。

那么在 Linux 和 .Net Core 中写入文件时如何检测文件是否被删除?我是否必须在每次调用 StreamWriter.WriteLine 之前调用 File.Exists?有什么方法可以告诉 StreamWriter 在下一次写入调用时重新打开/重新创建文件?

最佳答案

通常 Linux 应用程序不会尝试检查其打开的文件是否已被删除或重命名。这需要大量工作,而且不是他们的责任。

相反,扰乱文件的进程要么重新启动应用程序,要么向它发出信号。许多应用程序为 SIGHUP 安装信号处理程序,并将其用作重新加载配置文件和重新打开日志文件的信号。不太复杂的应用程序可以简单地终止并重新启动,尽管这会引入较短的停机时间窗口。 Log rotation通常可以将程序配置为在每个应用程序的基础上使用任一策略。

关于linux - 在 Linux 中删除不影响 StreamWriter 的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56597499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com