Estou escrevendo um manipulador de syslog e estou matando o daemon syslog padrão. Aparentemente, pelo menos com base nesse strace, meu palpite é que as funções glibc syslog()
parecem travar em uma chamada de sistema sendto()
.
Eu estou sempre atordoado quando algo como esse núcleo funciona em um sistema faz algo assim. Talvez isso por design? Apenas parece uma má ideia.
read(9, "", 4096) = 0
close(9) = 0
munmap(0x7f461335d000, 4096) = 0
read(8, "", 4096) = 0
close(8) = 0
munmap(0x7f461335e000, 4096) = 0
socket(PF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 8
connect(8, {sa_family=AF_LOCAL, sun_path="/dev/log"}, 110) = 0
sendto(8, "<85>Sep 11 16:53:56 sudo: ro"..., 92, MSG_NOSIGNAL, NULL, 0
Então - se você tiver esse problema, verifique seu daemon syslog e veja se ele funciona, e /dev/log
existe.