Como faço para que o svlogd grave dados com mais frequência em um trabalho executado?

5

Atualmente, tenho este script de registro / execução como parte de um serviço do runit:

#!/bin/sh
set -e

exec svlogd -tt ./main

Se eu " tail -f log/main/current ", não vejo a saída do serviço escrita em "tempo real". Parece apenas despejar o stdout em incrementos de 4K. Portanto, se o serviço for usado levemente, não consigo ver os dados de log mais recentes, a menos que eu realmente faça um 'sv restart' no serviço, nesse caso todos os dados são gravados nos logs antes que o serviço seja reiniciado.

Eu brinquei com os argumentos "-l" e "-b", mas eles não tiveram nenhum efeito (e eu nem tenho certeza se isso é importante neste momento).

    
por up_the_irons 14.12.2011 / 01:49

1 resposta

3

Parece que a falha infelizmente está no daemon que não libera o stdout depois de gravar os dados do log.

O svlogd faz apenas o buffer de linha, então ele exibe linhas completas no arquivo de log assim que elas chegam no stdin.

    
por 16.02.2012 / 14:58

Tags