nohup não está atualizando nohup.out

1

Reduzir para o menor problema aqui é um script python simples que eu quero rodar usando nohup no linux. Eu corro usando o seguinte (no linux):

 nohup python test.py &

O comando parece não fazer nada, nada é acrescentado ao nohup.out. Se eu executar sem o & a saída é exibida corretamente na janela do terminal. O que estou perdendo?

 import time

 def test():
   while(True):
     print "Woke up!"
     time.sleep(5)

 if __name__ == "__main__":
    test()
    
por G Horn 25.08.2015 / 22:41

2 respostas

3

Tente executá-lo com o comando nohup python -u test.py & . Isso deve tornar a saída sem buffer.

Você pode tornar o script executável adicionando um caminho de destaque como a primeira linha com a opção -u . Você também precisará definir o bit executável com o comando chmod +x test.py .

#!/usr/bin/python -u
import time
....

Você pode, então, executá-lo como nohup test.py & .

    
por 26.08.2015 / 02:42
0

Buffer de E / S com base em bloco, eu acho. O que acontece se você definir o equivalente em Python da saída setvbuf(3) baseada em linha ou sem buffer no padrão?

    
por 25.08.2015 / 22:58

Tags