Warum funktioniert irexec von LIRC beim Booten nicht richtig?

Warum funktioniert irexec von LIRC beim Booten nicht richtig?

Ich habe es LIRCaus dem Quellcode erstellt und installiert. Es läuft systemdbeim Booten als Dienst und funktioniert hervorragend. Ich kann es ausführen irwund es zeigt die erwartete Ausgabe an. Ich kann es ausführen und es ircatzeigt, was in der configZeile der lircrcKonfigurationsdatei ausgeführt werden soll.

Das Problem, das ich habe, ist irexec: Wenn ich es von der Shell aus ausführe, funktioniert es einwandfrei. Wenn ich es manuell ausführe, systemctl start irexec.servicefunktioniert es einwandfrei. Sobald ich neu starte, sollte es automatisch starten, was es auch tut, aber es führt meinen Befehl nicht aus; es tut absolut nichts. Es gibt nicht einmal Fehlermeldungen in den Protokollen.

Das Seltsame ist, dass irexec.servicees einwandfrei funktioniert und meinen Befehl perfekt ausführt, wenn ich es nach dem Booten neu starte, nachdem es bereits gestartet war. Irgendeine Ahnung, warum das passiert?

Dies ist die Datei 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

Das irexec.servicestartet immer, nachdem das lircd.servicebereits ausgeführt wird.

BEARBEITENIch verwende LIRC 0.9.4-devel

Antwort1

Hatte das gleiche Problem, nur umgekehrt,

Das Ändern der irexec.serviceDatei und die Verwendung der systemctlBefehle zum Starten und Stoppen des Dienstes scheint nicht zu funktionieren.Ein vollständiger Neustart ist erforderlich.

Sie scheinen die Option --daemon vergessen zu haben.

Dies ist meine irexec.serviceDatei:

[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

Antwort2

Das ist wahrscheinlich offensichtlich, aber ich habe alle Antworten hier und anderswo ausprobiert und keine hat geholfen, systemctl zu starten und irexec nach dem Booten weiterlaufen zu lassen. Ich habe das Problem gelöst, indem ich lirc gelöscht und neu installiert und dann meine benutzerdefinierten Konfigurationsdateien erneut in den Ordner /etc/lirc kopiert habe. Ich wünschte, ich hätte das zuerst versucht. Das hätte viel Zeit gespart.

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/ 

Antwort3

Bei mir hat es geholfen, den irexec-Dienst zu aktivieren, indem ich

sudo systemctl enable irexec

Ich brauchte die Option --deamon im irexec.service nicht, die @The Demz brauchte.

Ich habe gerade eineFehlerberichtalso läuft irexec nach lircd (after:lircd).

verwandte Informationen