
Ich habe es LIRC
aus dem Quellcode erstellt und installiert. Es läuft systemd
beim Booten als Dienst und funktioniert hervorragend. Ich kann es ausführen irw
und es zeigt die erwartete Ausgabe an. Ich kann es ausführen und es ircat
zeigt, was in der config
Zeile der lircrc
Konfigurationsdatei 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.service
funktioniert 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.service
es 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.service
startet immer, nachdem das lircd.service
bereits ausgeführt wird.
BEARBEITENIch verwende LIRC 0.9.4-devel
Antwort1
Hatte das gleiche Problem, nur umgekehrt,
Das Ändern der irexec.service
Datei und die Verwendung der systemctl
Befehle 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.service
Datei:
[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).