
Eu queria saber o uso do syslog quando vários processos estão tentando gravar no mesmo arquivo de log, como
for i in $var
do
some process >> logfile &
done
wait
Responder1
Você pode fazer
some process | logger &
para gerar processos e ter sua saída direcionada para o syslog. Observe que o recurso padrão será “usuário” e o nível padrão “aviso”. Você pode alterá-los usando a -p
opção.
A razão pela qual isso funciona sem problema é que os processos não gravam diretamente no arquivo de destino. Eles enviam suas mensagens para o daemon syslog, que gerencia a gravação no(s) arquivo(s) apropriado(s). Pelo que entendi, a atomicidade seria baseada em linhas, ou seja, cada linha de saída de um processo iria para o syslog sem interferência, mas mensagens multilinhas poderiam misturar linhas de outros processos.