Como posso impedir que um processo em execução descontrolado seja registrado no systemd?

Como posso impedir que um processo em execução descontrolado seja registrado no systemd?

Há um processo no meu sistema chamadodemônioque registra cerca de 100 entradas no diário do systemda cada 15 segundos:

Okt 11 04:58:42 scarecrow demond[1692]: [P:1692 T:108160832] src/discovery.c : 158  getHidDevices        -- failed in opening HIDDEV file: /dev/hiddev0. No such file or directory
Okt 11 04:58:42 scarecrow demond[1692]: [P:1692 T:108160832] src/discovery.c : 158  getHidDevices        -- failed in opening HIDDEV file: /dev/hiddev1. No such file or directory
Okt 11 04:58:42 scarecrow demond[1692]: [P:1692 T:108160832] src/discovery.c : 158  getHidDevices        -- failed in opening HIDDEV file: /dev/hiddev2. No such file or directory
Okt 11 04:58:42 scarecrow demond[1692]: [P:1692 T:108160832] src/discovery.c : 158  getHidDevices        -- failed in opening HIDDEV file: /dev/hiddev3. No such file or directory
Okt 11 04:58:42 scarecrow demond[1692]: [P:1692 T:108160832] src/discovery.c : 158  getHidDevices        -- failed in opening HIDDEV file: /dev/hiddev4. No such file or directory
Okt 11 04:58:42 scarecrow demond[1692]: [P:1692 T:108160832] src/discovery.c : 158  getHidDevices        -- failed in opening HIDDEV file: /dev/hiddev5. No such file or directory
Okt 11 04:58:42 scarecrow demond[1692]: [P:1692 T:108160832] src/discovery.c : 158  getHidDevices        -- failed in opening HIDDEV file: /dev/hiddev6. No such file or directory
Okt 11 04:58:42 scarecrow demond[1692]: [P:1692 T:108160832] src/discovery.c : 158  getHidDevices        -- failed in opening HIDDEV file: /dev/hiddev7. No such file or directory
Okt 11 04:58:42 scarecrow demond[1692]: [P:1692 T:108160832] src/discovery.c : 158  getHidDevices        -- failed in opening HIDDEV file: /dev/hiddev8. No such file or directory
Okt 11 04:58:42 scarecrow demond[1692]: [P:1692 T:108160832] src/discovery.c : 158  getHidDevices        -- failed in opening HIDDEV file: /dev/hiddev9. No such file or directory
Okt 11 04:58:42 scarecrow demond[1692]: [P:1692 T:108160832] src/discovery.c : 158  getHidDevices        -- failed in opening HIDDEV file: /dev/hiddev10. No such file or directory
Okt 11 04:58:42 scarecrow demond[1692]: [P:1692 T:108160832] src/discovery.c : 158  getHidDevices        -- failed in opening HIDDEV file: /dev/hiddev11. No such file or directory
Okt 11 04:58:42 scarecrow demond[1692]: [P:1692 T:108160832] src/discovery.c : 158  getHidDevices        -- failed in opening HIDDEV file: /dev/hiddev12. No such file or directory
Okt 11 04:58:42 scarecrow demond[1692]: [P:1692 T:108160832] src/discovery.c : 158  getHidDevices        -- failed in opening HIDDEV file: /dev/hiddev13. No such file or directory
Okt 11 04:58:42 scarecrow demond[1692]: [P:1692 T:108160832] src/discovery.c : 158  getHidDevices        -- failed in opening HIDDEV file: /dev/hiddev14. No such file or directory
Okt 11 04:58:42 scarecrow demond[1692]: [P:1692 T:108160832] src/discovery.c : 158  getHidDevices        -- failed in opening HIDDEV file: /dev/hiddev15. No such file or directory

Isso preenche o diário muito rapidamente e cria acesso permanente ao disco, o que esgota a bateria. Todas as entradas têm prioridade 7 (depuração).

demond faz parte do driver da impressora Lexmark. Acho que eles o usam para descoberta de dispositivos Wifi. Entrei em contato com o suporte da Lexmark e eles disseram que não podem alterar o driver e que não há como suprimir essas mensagens. E como o driver é de código fechado, não posso alterá-lo sozinho.

Eu sei que posso suprimir completamente o nível de depuração 7 usando MaxLevelStore=infoJournald.conf, mas isso suprime o nível de depuração paratodosprocessos.

Existe uma maneira de suprimir o registropara um determinado processocomo demônio?

Estou usando o ArchLinux com o systemd 208 mais recente. Não uso syslog-ng ou rsyslog.

Responder1

Acontece que existe uma variável de ambiente chamada ENABLE_D_LOG=0|1 que é 1 por padrão e é responsável pela loucura do registro. Configurá-lo como 0 desliga o driver. Então criei um script wrapper para demond que define ENABLE_D_LOG=0 e então chama o demond original:

# cd /usr/local/lexmark/legacy/bin
# mv demond demond.orig
# cat > demond <<EOF
#!/bin/sh
export ENABLE_D_LOG=0
/usr/local/lexmark/legacy/bin/demond.orig $@
EOF
# chmod +x demond

informação relacionada