Eu adicionei meu serviço asistema(Estou executando-o em umpi3), Se parece com isso:
[Unit]
Description=Oral-B BLE scanner service
Wants=network-online.target
After=network-online.target
StartLimitBurst=10
StartLimitIntervalSec=10
Requires=bluetooth.target
[Service]
Type=simple
WorkingDirectory=/home/pi/scripts
ExecStart=/home/pi/scripts/scanOralB.py
Restart=always
RestartSec=10
[Install]
WantedBy=network-online.target
Eu adicionei um link simbólico ao arquivo acima em/lib/systemd/sistema. Eu habilitei o serviço também. Só para ter certeza, verifiquei.
pi@raspberrypi:~ $ systemctl is-enabled scanOralB.service
enabled
Se eu reiniciar e verificar o status, ficará assim:
pi@raspberrypi:~ $ sudo systemctl status scanOralB.service
* scanOralB.service - Oral-B BLE scanner service
Loaded: loaded (/home/pi/scripts/scanOralB.service; enabled; vendor preset: enabled)
Active: inactive (dead)
Se eu iniciar o serviço manualmente, ele funcionará perfeitamente. Alguém pode explicar por que o serviço não está sendo iniciado após a inicialização? Não recebo nenhuma saída extra dejornalctlqualquer.
Responder1
Não está sendo iniciado porque não é desejado por nada que começa.
[Instalar] WantedBy = rede-online.targetEu adicionei um link simbólico ao arquivo acima em/lib/systemd/sistema.
Praticamente tudo isso está errado.
- O arquivo da unidade deve sercolocadaem
/etc/systemd/system
. Links simbólicos são interpretados idiossincraticamente pelo systemd e não possuem a semântica convencional do sistema de arquivos. E/lib/systemd/system
não é o lugar para arquivos unitários escritos à mão que não vêm de pacotes. - O arquivo unitário deve ser desejado por algo que realmente é iniciado no bootstrap.
network-online.target
geralmente não.multi-user.target
é a escolha habitual.graphical.target
é outro.