Sistemas com s6, runit, perp, nos, daemontools-encore, et al. fazendo o gerenciamento de serviços funcionar dessa maneira. Cada serviço principal tem um conjunto associado individual de arquivos de log que podem ser monitorados individualmente e um mecanismo de registro descentralizado.
systemd entretanto não funciona dessa maneira. Não há "arquivo de log associado" individual para nenhum serviço. Não existe tal arquivo a ser monitorado.
Toda saída de log é canalizada para um único servidor central, systemd-journald
, e o servidor escreve como um único fluxo com todas as saídas de log dos serviços combinadas ao único periódico central em /{run,var}/log/journal/
.
A opção -u
para journalctl
é um filtro de pós-processamento que filtra o que é impresso a partir do único periódico central, todas as entradas no diário sendo marcadas com (entre outras coisas) o nome do serviço associado. Tudo é ventilado, e então ele precisa ser filtrado para separá-lo (aproximadamente) como era originalmente.
A maneira sistêmica é usar journalctl -f
com filtros apropriados adicionados ou escrever seu próprio programa diretamente usando a API específica do systemd para seu diário.