为什么 LIRC 的 irexec 在启动时无法正常工作?

为什么 LIRC 的 irexec 在启动时无法正常工作?

LIRC从源代码构建并安装它。它systemd在启动时作为服务运行,并且运行良好。我可以运行它irw,它显示预期的输出。我可以运行它,它显示配置文件行ircat上应该运行的内容。configlircrc

我遇到的问题是irexec。当我从 shell 运行它时,它工作正常。当我通过运行手动运行它时,systemctl start irexec.service它工作正常。一旦我重新启动,它应该会自动启动,并且它确实启动了,但它没有运行我的命令;它什么也不做。日志中甚至没有任何错误消息。

奇怪的是,如果我irexec.service在启动后重新启动,它已经启动了,它工作正常,并完美地运行我的命令。有线索知道为什么会发生这种情况吗?

这是 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

总是在运行irexec.service之后才开始lircd.service

编辑我正在使用 LIRC 0.9.4-devel

答案1

遇到了同样的问题,但情况正好相反,

更改irexec.service文件和使用systemctl命令似乎无法启动和停止服务。需要完全重启。

您似乎忘记了 --daemon 选项。

这是我的irexec.service文件:

[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

答案2

这可能很明显,但我尝试了这里和其他地方的所有答案,但没有一个能让 systemctl 启动并在启动后保持 irexec 运行。我通过清除并重新安装 lirc,然后将我定制的配置文件重新复制到 /etc/lirc 文件夹解决了这个问题。我希望我先尝试一下。这样可以节省很多时间。

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/ 

答案3

对我来说,诀窍是启用 irexec 服务执行

sudo systemctl enable irexec

我不需要@The Demz 需要的 irexec.service 中的 --deamon 选项。

我刚刚提交了错误报告因此 irexec 在 lircd 之后运行(after:lircd)。

相关内容