¿Cómo puedo evitar que un proceso en ejecución loco inicie sesión en systemd?

¿Cómo puedo evitar que un proceso en ejecución loco inicie sesión en systemd?

Hay un proceso en mi sistema llamadodemonioque registra alrededor de 100 entradas en el diario systemdcada 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

Esto llena el diario muy rápidamente y crea un acceso permanente al disco, lo que agota la batería. Todas las entradas tienen prioridad 7 (depuración).

demond es parte del controlador de impresora Lexmark. Supongo que lo usan para descubrir dispositivos Wifi. Me comuniqué con el soporte de Lexmark y me dijeron que no pueden cambiar el controlador y que no hay forma de suprimir esos mensajes. Y como el controlador es de código cerrado, no puedo cambiarlo yo mismo.

Sé que puedo suprimir el nivel de depuración 7 por completo usando MaxLevelStore=infojournald.conf, pero esto suprime el nivel de depuración paratodoprocesos.

¿Hay alguna manera de suprimir el registro?para un determinado procesocomo el demonio?

Estoy usando ArchLinux con el último systemd 208. No uso syslog-ng ni rsyslog.

Respuesta1

Resultó que hay una variable de entorno llamada ENABLE_D_LOG=0|1 que es 1 por defecto y que es responsable de la locura del registro. Establecerlo en 0 apaga el controlador. Así que creé un script contenedor para demond que establece ENABLE_D_LOG=0 y luego llama al demonio 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

información relacionada