我LIRC
从源代码构建并安装它。它systemd
在启动时作为服务运行,并且运行良好。我可以运行它irw
,它显示预期的输出。我可以运行它,它显示配置文件行ircat
上应该运行的内容。config
lircrc
我遇到的问题是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)。