Eu criei um arquivo de serviço systemd estático 'irtrans.service' da seguinte forma:
[Unit]
Description=irtrans daemon
After=network-online.target
[Service]
Type=forking
#EnvironmentFile=/etc/conf.d/lircd.conf
#PIDFile=/run/lirc/lircd.pid
ExecStartPre=/bin/mkdir -p /var/run/lirc
ExecStartPost=/bin/ln -s /dev/lircd /var/run/lirc/lircd
ExecStart=/usr/local/irtrans/irserver64 -timestamp -logfile /var/log/irtrans.log -loglevel 4 -daemon 172.31.252.14
ExecStopPost=/bin/rm -f /dev/lircd
ExecStopPost=/bin/rm -fR /var/run/lirc
[Install]
#WantedBy=kodi.service
e um arquivo kodi.service da seguinte forma:
[Unit]
Description = kodi-standalone using xinit
After = remote-fs.target systemd-user-sessions.service
Wants = irtrans.service
[Service]
User = kodi
Group = kodi
PAMName = login
Type = simple
ExecStart = /usr/bin/xinit /usr/bin/dbus-launch /usr/bin/kodi-standalone -- :0 -nolisten tcp
Restart = on-abort
[Install]
WantedBy = multi-user.target
Na inicialização, o serviço kodi é iniciado, mas o serviço irtrans falha. Eu posso iniciar o serviço irtrans manualmente depois que o sistema for iniciado, mas após a inicialização ele falha ao iniciar automaticamente. O status do systemctl para irtrans mostra:
● irtrans.service - irtrans daemon
Loaded: loaded (/etc/systemd/system/irtrans.service; static; vendor preset: disabled)
Active: failed (Result: exit-code) since Sat 2016-12-24 17:44:52 EST; 1min 31s ago
Process: 767 ExecStart=/usr/local/irtrans/irserver64 -timestamp -logfile /var/log/irtrans.log -loglevel 4 -daemon 172.31.252.14 (c
Process: 755 ExecStartPre=/bin/mkdir -p /var/run/lirc (code=exited, status=0/SUCCESS)
Dec 24 17:44:47 pclivingroom.ocg.ca systemd[1]: Starting irtrans daemon...
Dec 24 17:44:52 pclivingroom.ocg.ca systemd[1]: irtrans.service: Control process exited, code=exited status=1
Dec 24 17:44:52 pclivingroom.ocg.ca systemd[1]: Failed to start irtrans daemon.
Dec 24 17:44:52 pclivingroom.ocg.ca systemd[1]: irtrans.service: Unit entered failed state.
Dec 24 17:44:52 pclivingroom.ocg.ca systemd[1]: irtrans.service: Failed with result 'exit-code'.
Alguém pode explicar por que isso está acontecendo e como corrigi-lo? Eu suponho que isso significa que o irtrans é executável está falhando ao iniciar, mas só depende da rede que eu listei como uma dependência.
Sugestões?
Tags systemd