No Linux, RHEL-8.10 ou posterior, se for importante, eu gostaria de escrever algum código C que receba vários parâmetros e, sob uma determinada condição, emita um system("init 0")
para desligar o sistema. Antes de emitir o desligamento, gostaria de lançar uma mensagem de uma linha nesse /var/log/messages
sistema informando que o sistema foi desligado pelo código de Ron para que eu tenha um registro de quando isso aconteceu.
Como você escreve corretamente /var/log/messages
?
Obviamente eu posso fazer um fopen("/var/log/messages, "a")
e um simples, fprintf
mas isso parece um pouco complicado.
Você deve enviar suas mensagens de log para o logger do sistema , usando funções declaradas em
syslog.h
.No seu código de inicialização, adicione
(substitua
ronboot
por um identificador apropriado; se você especificarNULL
, o nome do programa será usado automaticamente).Quando você quiser registrar algo, use
No seu código de limpeza, adicione
O criador de logs do sistema gravará a mensagem no arquivo de log apropriado. Isso depende da instalação e do nível de log usado;
LOG_USER
/LOG_INFO
as mensagens normalmente vão para/var/log/messages
.