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.
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).