Eu tenho um sistema com vários daemons em execução (como unidades systemd) que enviam informações de log para o diário no Arch Linux. Desejo direcionar a saída do diário de alguns desses arquivos de unidade para um arquivo de texto separado cuja localização eu especifique, criando essencialmente um arquivo de log para um subconjunto de unidades. Como posso fazer isso?
arch-linux
systemd
logs
systemd-journald
Amr Bekhit
fonte
fonte
Respostas:
Parece que isso não é possível e indesejado pelo upstream (redirecionando stdout / stderr para arquivos individuais), veja, por exemplo, http://lists.freedesktop.org/archives/systemd-devel/2012-March/004705.html - leia o tópico inteiro para obter mais informações informações de contexto como isso deve funcionar.
O que você pode fazer é fazer logon no syslog e, dessa forma, gravar em arquivos individuais. Ou o contrário, se a unidade chamar algum programa que possa gravar um registro em si, use-o para registrar em um arquivo.
Você também pode dar uma olhada em Exibir stdout / stderr do serviço systemd
O que você já pode fazer com sua configuração atual é usar
journalctl -u yourunitname > yourlogfile_for_yourunitname
para direcionar toda a saída do diário da sua unidade "yourunitname" em um arquivo.
Na última parte, você também deve dar uma olhada nas dicas de Lennart do tópico da lista de discussão acima mencionado:
EDIT: Na verdade, para versões mais recentes do systemd, o comando é apenas journalctl e, pelo que posso dizer, o comando long acima é o mesmo
journalctl -u yourunitname
e você também pode-f
"acompanhar" a saída (como em tailf ou tail -f).fonte