LIRC の irexec が起動時に正しく動作しないのはなぜですか?

LIRC の irexec が起動時に正しく動作しないのはなぜですか?

ソースからビルドLIRCしてインストールしました。systemd起動時にサービスとして実行され、正常に動作します。実行するirwと、期待どおりの出力が表示されます。実行すると、構成ファイルの行ircatで実行されるべき内容が表示されます。configlircrc

私が抱えている問題は、 です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)。

関連情報