O serviço systemd termina em “inativo (morto)” após a inicialização

O serviço systemd termina em “inativo (morto)” após a inicialização

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.target
Eu 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/systemnã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.targetgeralmente não. multi-user.targeté a escolha habitual. graphical.targeté outro.

informação relacionada