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