Почему irexec из LIRC не работает должным образом при загрузке?

Почему irexec из LIRC не работает должным образом при загрузке?

Я собрал 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

Мне не нужна была опция --deamon в irexec.service, которая была нужна @The Demz.

Я только что отправилотчет об ошибкепоэтому irexec запускается после lircd (after:lircd).

Связанный контент