Eu aprendi recentemente que journalctl
está ocupando uma grande parte do meu cartão SD de 16 GB (Raspberry Pi):
$ journalctl --disk-usage
Archived and active journals take up 312.1M in the file system.
Eu não sinto isso journalctl
e estou puxando seu pesojournald
no meu caso de uso para esta máquina. É um RPi antigo e também está em execução. Eu estimo que minha necessidade e uso de talvez seja "uma vez na lua azul" . Consequentemente, decidi que iria desabilitar - o que "alimenta" . Eu assumi que isso seria direto, usando to , ou talvez apenas ing the para que ele não iniciasse na próxima inicialização.rsyslog
journalctl
journald
journalctl
systemctl
stop
disable
systemd-journald.service
Antes de puxar o plugue, decidi fazer algumas pesquisas. Em vez de encontrar milhares de referências que ofereciam conselhos de "como fazer", havia notavelmente poucos resultados abordando meu termo de pesquisa específico: "como desativar o journald" . Em vez disso, os resultados ofereceram principalmente conselhos sobre a redução journald
do consumo de recursos . Encontrei algumas referências que me deram uma pausa:
Um tópico antigo no fórum do ArchLinux sugeriu que não era possível desabilitar journald
sem repercussões ; ou seja, "Masking systemd-journald causes all kinds of dependency failures and drops you at an emergency prompt."
mas este post já tem 10 anos...
O manual do systemd-journald.service diz, "stopping it [systemd-journald.service] is not recommended."
. A documentação prossegue a partir daí para discutir namespaces ?
Aprendi que o comando usual para impedir que as systemd
unidades iniciem não tem efeito; ou seja, ele inicia normalmente:
$ sudo systemctl disable systemd-journald.service
$ sudo reboot
# ... and after boot & login:
$ systemctl status systemd-journald.service
● systemd-journald.service - Journal Service
Loaded: loaded (/lib/systemd/system/systemd-journald.service; static)
Active: active (running) since Fri 2022-06-03 07:30:29 UTC; 1min 59s ago
TriggeredBy: ● systemd-journald-audit.socket
● systemd-journald.socket
● systemd-journald-dev-log.socket
Docs: man:systemd-journald.service(8)
man:journald.conf(5)
Main PID: 134 (systemd-journal)
Status: "Processing requests..."
Tasks: 1 (limit: 1598)
CPU: 820ms
CGroup: /system.slice/systemd-journald.service
└─134 /lib/systemd/systemd-journald
...
$
Como pode journald
ser desativado? ... ou pode ser desativado?
Se não, por que os systemd
desenvolvedores forçariam isso aos usuários? (OK, sim - pedindo uma opinião, então esqueça essa parte da pergunta.)
A razão para não querer eliminar
journald
quando você está usandorsyslogd
é quersyslogd
pode obter as informações do journald, e eles jogam muito bem juntos dessa maneira.Isso é meio que contra algumas das perguntas e respostas vinculadas nos comentários aqui. Algumas observações sobre isso em um sistema linux atual (verifiquei isso no Fedora e no Debian) que está configurado para ter journald usar apenas armazenamento volátil (na memória), com
rsyslog
a gravação de arquivos de log reais:/var/run/log
é um diretório com um subdiretório,journal
. Este contém arquivos gravadossystemd-journald
e lidos porrsyslogd
. Observe que este diretório está em umatmpfs
partição, portanto, conta como armazenamento volátil de memória./dev/log
é um link simbólico para/run/systemd/journal/dev-log
.O
/etc/rsyslog.conf
nesses sistemas inclui isso (que não é o estoquersyslog.conf
):Fedora e Debian diferem na configuração de estoque aqui;
imjournal
o primeiro também usaimuxsock
(soquete de espaço de usuário). 1 Debian usaimuxsock
eimklog
(kernel log), presumivelmente porque semimjournal
ele precisa ouvir o próprio kernel. Também presumo que isso seja um pouco anacrônico.Parte do meu ponto aqui é que rasgar completamente o journald pode não ser impossível, mas é uma má ideia. É um componente central dos sistemas baseados em sistemas contemporâneos. Seu déficit é que ele potencialmente usa muito mais espaço em disco do que rsyslog, mas isso é fácil de configurar usando
Storage=volatile
e (por exemplo)RuntimeMaxUse=64M
em/etc/systemd/journald
,Ter rsyslogd alimentado de journald é um relacionamento back-end/front-end; O rsyslog é ótimo porque fornece log de texto simples, bem como um controle muito mais refinado sobre o que é registrado, onde e como, enquanto journald fornece melhor integração com os serviços do sistema.
imjournal
. As conexões de espaço de usuário e kernel não são necessárias porque todas essas mensagens virão através do journald e (não verifiquei isso) podem ser duplicadas se você usar várias fontes.Desativar este serviço não impedirá o funcionamento do seu dispositivo, mas o registro cessará obviamente. Não vejo outros problemas.