¿Por qué irexec de LIRC no funciona correctamente al arrancar?

¿Por qué irexec de LIRC no funciona correctamente al arrancar?

Lo construí LIRCdesde la fuente y lo instalé. Se ejecuta como un systemdservicio al arrancar y funciona muy bien. Puedo ejecutar irwy muestra el resultado esperado. Puedo ejecutar ircaty muestra lo que se supone que debe ejecutarse en la configlínea del lircrcarchivo de configuración.

El problema que tengo es irexec. Cuando lo ejecuto desde el shell funciona bien. Cuando lo ejecuto manualmente ejecutándolo, systemctl start irexec.servicefunciona bien. Tan pronto como reinicio y se supone que se inicia automáticamente, lo hace, pero no ejecuta mi comando; no hace absolutamente nada. Ni siquiera hay mensajes de error en los registros.

Lo extraño es que si reinicio irexec.servicedespués del arranque, después de que ya se haya iniciado, funciona bien y ejecuta mi comando perfectamente. ¿Alguna pista de por qué sucede esto?

Este es el archivo irexec.service

[Unit]
Description=LIRC command handler
After=network.target
Wants=lircd.service

[Service]
Type=simple
ExecStart=/usr/bin/irexec /etc/lirc/lircrc

[Install]
WantedBy=multi-user.target

El irexec.servicesiempre comienza después de que lircd.serviceya se esté ejecutando.

EDITAREstoy usando LIRC 0.9.4-devel

Respuesta1

Tuve el mismo problema pero al revés.

Cambiar el irexec.servicearchivo y usar los systemctlcomandos no parece funcionar para iniciar y detener el servicio.Es necesario un reinicio completo.

Parece que has olvidado la opción --daemon.

Este es mi irexec.servicearchivo:

[Unit]
Description=IR Remote irexec config .lircrc loaded on startup
After=lircd.service
Wants=lircd.service

[Service]
ExecStart=/usr/bin/irexec --daemon $HOME/.lircrc
Type=forking

[Install]
WantedBy=multi-user.target

Respuesta2

Probablemente esto sea obvio, pero probé todas las respuestas aquí y en otros lugares, y ninguna funcionó para que systemctl se iniciara y mantuviera irexec ejecutándose después del arranque. Resolví el problema purgando y reinstalando lirc, luego volviendo a copiar mis archivos de configuración personalizados en la carpeta /etc/lirc. Ojalá hubiera probado esto primero. Habría ahorrado mucho tiempo.

sudo apt purge lirc
sudo apt install lirc
#then recopy your custom config files 
#irexec.lircrc goes in /etc/lirc/ 
#remote.conf files go in /etc/lirc/lircd.conf.d/ 

Respuesta3

Lo que me sirvió fue habilitar el servicio irexec haciendo un

sudo systemctl enable irexec

No necesitaba la opción --deamon en irexec.service que @The Demz necesitaba.

Acabo de enviar uninforme de errorentonces irexec se ejecuta después de lircd (después de:lircd).

información relacionada