為什麼 LIRC 的 irexec 在啟動時無法正常運作?

為什麼 LIRC 的 irexec 在啟動時無法正常運作?

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)。

相關內容