
Eu construí LIRC
a partir do código-fonte e instalei. Está sendo executado como um systemd
serviço na inicialização e funciona muito bem. Posso executar irw
e ele exibe a saída esperada. Posso executar ircat
e mostra o que deve ser executado na config
linha do lircrc
arquivo de configuração.
O problema que estou tendo é irexec
. Quando executo a partir do shell, ele funciona bem. Quando eu o executo manualmente, systemctl start irexec.service
ele funciona bem. Assim que eu reinicio e ele deveria iniciar automaticamente, e inicia, mas não executa meu comando; não faz absolutamente nada. Não há mensagens de erro nos logs.
O estranho é que se eu reiniciar irexec.service
após o boot, depois de já ter iniciado, ele funciona bem e executa meu comando perfeitamente. Alguma pista de por que isso está acontecendo?
Este é o arquivo 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
O irexec.service
does sempre inicia depois que o lircd.service
já estiver em execução.
EDITAREstou usando o LIRC 0.9.4-devel
Responder1
Tive o mesmo problema, mas ao contrário,
Alterar o irexec.service
arquivo e usar os systemctl
comandos parece não funcionar para iniciar e parar o serviço.É necessária uma reinicialização completa.
Você parece ter esquecido a opção --daemon.
Este é o meu irexec.service
arquivo:
[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
Responder2
Provavelmente isso é óbvio, mas tentei todas as respostas aqui e em outros lugares, e nenhuma funcionou para iniciar o systemctl e manter o irexec em execução após a inicialização. Resolvi o problema limpando e reinstalando o lirc e, em seguida, copiando novamente meus arquivos de configuração personalizados para a pasta /etc/lirc. Eu gostaria de ter tentado isso primeiro. Teria economizado muito tempo.
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/
Responder3
O que funcionou para mim foi ativar o serviço irexec fazendo um
sudo systemctl enable irexec
Eu não precisava da opção --deamon no irexec.service que @The Demz precisava.
Acabei de enviar umrelatório de erroentão o irexec é executado após o lircd (após: lircd).