Como obtenho nohup.out flushed mais frequentemente?

7

No Ubuntu 10.04, eu tenho um longo programa em Python que imprime um monte de saída; Eu corro isso sob "nohup". No entanto, aguarda até o final para colocar todo o texto em nohup.out. Quando eu executo programas similares no FreeBSD, cada linha é enviada para nohup.out. Existe uma configuração do Ubuntu que posso configurar para obter a saída mais rápida?

    
por Paul Hoffman 13.09.2010 / 05:03

2 respostas

9

Sim, isso tem a ver com a maneira como o stdout é armazenado por padrão no Linux. Você precisa executar explicitamente setbuf () no código para substituir esse comportamento.

Minha sugestão é evitar o nohup, se você estiver usando o bash shell, ele permitirá que você desassocie o comando do seu shell

$ ( my_cmd > ~/output.log 2>&1 & ) 

Você também pode usar disown para um efeito semelhante em um trabalho em execução no momento.

    
por 13.09.2010 / 05:49
2

Como seu programa é python, você pode executá-lo com python -u . Como alternativa, você pode encontrar o programa unbuffer útil .

    
por 01.08.2013 / 00:47