加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

删除的文件会在linux上重定向后发生什么?

发布时间:2020-12-13 17:08:18 所属栏目:Linux 来源:网络整理
导读:如果在 Linux中删除了诸如nohup.out之类的日志文件,而它仍然是正在运行的作业(以及进一步输入)的主题,那么数据会发生什么? 例如 script.sh #!/bin/bashwhile [ 1 ]do fortunedone 然后… # nohup ./script.sh 默认情况下,这会将日志输出到nohup.out. 甚至 #
如果在 Linux中删除了诸如nohup.out之类的日志文件,而它仍然是正在运行的作业(以及进一步输入)的主题,那么数据会发生什么?

例如

script.sh

#!/bin/bash
while [ 1 ]
do
  fortune
done

然后…

# nohup ./script.sh &

默认情况下,这会将日志输出到nohup.out.

甚至

# ./script.sh > nohup.out &

问题是;如果nohup.out被删除会发生什么?假设工作继续,文件真的消失了吗?如果script.sh生成足够的数据来填充磁盘,会发生什么?这是否会创建一个事实上的重定向状态到/ dev / null?

作为背景,我发现之前在此方法中启动的进程无法在延长的持续时间内重新启动,但在该维护窗口之前,我估计磁盘将填充.将来我们将避免这种情况,我只是对仍然需要重定向的未链接文件会发生什么感到好奇.

解决方法

如果程序仍然打开文件句柄,我相信会发生的是文件继续存在.它会从您的目录列表中消失并且看起来已经消失,但在最后一个文件句柄关闭之前,文件会继续增长.

这就是为什么人们会在文件系统上拥有大量文件并获得错误,找到一个巨大的错误文件,删除它,并且仍然有大量的磁盘空间列表但无法再找到该文件.在那.只是不太明显.使用lsof查找持有文件句柄的应用程序并终止/关闭应用程序,然后回收空间.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读