
ソースからビルドLIRC
してインストールしました。systemd
起動時にサービスとして実行され、正常に動作します。実行するirw
と、期待どおりの出力が表示されます。実行すると、構成ファイルの行ircat
で実行されるべき内容が表示されます。config
lircrc
私が抱えている問題は、 ですirexec
。シェルから実行すると正常に動作します。 を実行して手動で実行すると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)。