2

В стабильной Debian, Python 2.6.4

У меня есть скрипт, который перезаписывает /dev /null.

Есть идеи о том, что может происходить?

Единственное, что у меня есть, это типичная работа cron, которая перенаправляет вывод в /dev /null, но это не должно вызывать это, верно?

2 ответа2

4

Я предполагаю, что какой-то скрипт, работающий с правами root, перемещает свой вывод на место. Так что-то вроде

... write data ... > /tmp/foo.$$.tmp
mv /tmp/foo.$$.tmp "$DEST"  # where "$DEST" is /dev/null -- ouch!
3

Как только /dev /null был один раз захвачен, любая попытка записи в него заменит его файлом. Вы должны воссоздать его, используя mknod.

Хорошо, я вернусь к этому - стабильная версия Debian использует udev, поэтому вы можете воссоздать материал в /dev, просто перезагрузившись. Когда мужчины были мужчинами, а Sun OS требовала перекомпиляции, если вам нужно больше семафоров, группа из нас потратила некоторое время, пытаясь выяснить, почему одна часть нашей программы давала странные ответы, пока мы не поняли, что stdin был направлен из /dev /null и /dev /null были заменены обычным файлом, поэтому каждый раз, когда он запускался, он получал в качестве входных данных все, что было выведено в последний раз, когда кто-то запускал программу с выводом, перенаправленным из /dev /null.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .