时间戳不断更新/ dev / null

我一直在用AIX系统上的/ dev / null文件来解决问题(只是为了使后台看起来好像它被无意中删除,并被某人重新创build为普通文件),但是试图确定是什么导致了问题,我注意到它的时间戳似乎每分钟都在更新。 我在我的工作场所的几台AIX服务器上观察到了这一点。

目前我不能完全排除这是我工作场所使用的应用程序特有的东西,所以我昨天晚上和家里的CentOS和Debian电脑进行了比较。

CentOS盒子24小时运行,大约4天前在/ dev / null上有一个mod时间(在这段时间,它基本上只是作为一个networking浏览器和多媒体播放器使用,尽pipe它本来可以使用, Apache,MySQL和VMM进程在后台运行)。

Debian机器上的/ dev / null上的时间戳,这是一个刚启动的笔记本电脑,几乎反映了启动时间,但我testing了redirectSTDIN和STDOUT它,修改时间没有改变(我不知道100%确定是否将数据导向到/ dev / null构成了以正常文件的方式写入数据)。

所以我的问题是本质上,任何人都可以请提供任何意见关于什么情况下(权限更改等)抛出可能会导致/ dev / null更新的时间戳?

非常感谢您的任何build议。

亚历克斯。

所以我的问题是本质上,任何人都可以请提供任何意见关于什么情况下(权限更改等)抛出可能会导致/ dev / null更新的时间戳?

在大多数我熟悉的系统上,完全相同的情况会导致更新任何文件的时间戳:创build(更新ctime ),访问(更新atime )或修改(更新mtime )。

  • 在创build设备节点时, 创build应该只发生一次。
  • 在这种情况下访问应该只与修改一起发生(没有人会读/dev/null ….)
  • 每次有人将输出pipe道输出到/dev/null时,都会进行修改

我不知道为什么你的Debian系统没有这样的行为(尽pipe我已经证实,当我在那里发送输出时,桌面上的Ubuntu机器不会更新/dev/null上的时间,所以它几乎肯定是Linux / Debian与他们的devfs实现相关的东西)。

你的AIX系统应该忠实地更新设备访问时间 – 包括/dev/null 。 BSD(FreeBSD 9.x)的行为是相似的,我相信Solaris也是如此,但是我没有Solaris盒来testing。


你应该问的更大的问题是“ 什么白痴删除/dev/null ”,所以你可以find他们,并作出例子(显然,如果你还没有你应该删除常规文件/dev/null并重新创build适当的设备节点。重新启动也可能是有序的,因为一些程序可能会保持打开常规文件/dev/null inode并仍然写入它…)。