sobrescreve / dev / null com arquivo

2

No Debian estável, o python 2.6.4

Eu tenho um script que sobrescreve / dev / null.

Alguma idéia do que poderia estar acontecendo?

A única coisa que tenho é uma tarefa típica do cron que redireciona a saída para / dev / null, mas isso não deve causar isso, certo?

    
por Christopher Mahan 02.01.2011 / 19:24

2 respostas

4

Meu palpite é que algum script em execução com direitos de root está movendo sua saída para o lugar. Então faz algo como

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

Uma vez que / dev / null tenha sido destruído uma vez, qualquer tentativa de escrever nele substituirá por um arquivo. Você tem que recriá-lo usando o mknod.

Ok, eu retiro isso - o Debian stable usa o udev, então você pode recriar as coisas em / dev apenas reiniciando. Quando os homens eram homens e o Sun OS exigia que você recompilasse se quisesse mais semáforos, um grupo de nós passou algum tempo tentando descobrir por que uma parte do nosso programa estava dando respostas estranhas, até percebermos que stdin era direcionado de / dev / null e / dev / null foram substituídos por um arquivo normal, então toda vez que ele rodava ele recebia como entrada o que quer que tivesse sido produzido na última vez que alguém executou um programa com a saída redirecionada de / dev / null.

    
por 02.01.2011 / 19:29

Tags