在 Debian 稳定版上,python 2.6.4
我有一个覆盖/dev/null 的脚本。
知道可能会发生什么吗?
我唯一拥有的是一个典型的 cron 作业,它将输出重定向到 /dev/null,但这不应该导致这种情况,对吗?
答案1
我猜是某个以 root 权限运行的脚本正在将其输出移到位。因此它会执行类似
... write data ... > /tmp/foo.$$.tmp
mv /tmp/foo.$$.tmp "$DEST" # where "$DEST" is /dev/null -- ouch!
答案2
一旦 /dev/null 被破坏,任何写入尝试都会将其替换为文件。您必须使用 mknod 重新创建它。
好吧,我收回我说的话 - Debian 稳定版使用 udev,因此您只需重新启动即可重新创建 /dev 中的内容。当男人还是男人时,Sun OS 要求您重新编译以获得更多信号量,我们一群人花了一些时间试图弄清楚为什么我们程序的一部分会给出奇怪的答案,直到我们意识到 stdin 是从 /dev/null 定向的,而 /dev/null 已被普通文件替换,因此每次运行时,它都会将上次某人运行程序时的输出作为输入,该程序的输出重定向自 /dev/null。