El servicio systemd termina en "inactivo (muerto)" después del arranque.

El servicio systemd termina en "inactivo (muerto)" después del arranque.

He agregado mi servicio asistemad(Lo estoy ejecutando en unpi3), se parece a esto:

[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

He agregado un enlace simbólico al archivo anterior en/lib/systemd/sistema. También he habilitado el servicio. Sólo para estar seguro lo comprobé.

pi@raspberrypi:~ $ systemctl is-enabled scanOralB.service
enabled

Si reinicio y verifico el estado, se ve así:

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)

Si inicio el servicio manualmente, funciona bien. ¿Alguien puede explicar por qué el servicio no se inicia después del arranque? No obtengo ningún resultado extra dediarioctlcualquiera.

Respuesta1

No se está iniciando porque nada de lo que se inicia lo quiere.

[Instalar]
WantedBy=red-en línea.objetivo
He agregado un enlace simbólico al archivo anterior en/lib/systemd/sistema.

Casi todo eso está mal.

  • El archivo unitario debe sermetidoen /etc/systemd/system. Los enlaces simbólicos son interpretados de manera idiosincrásica por systemd y no tienen la semántica del sistema de archivos convencional. Y /lib/systemd/systemno es el lugar para archivos unitarios escritos a mano que no provienen de paquetes.
  • El archivo de la unidad debería ser buscado por algo que realmente se inicie en el arranque. network-online.targetnormalmente no lo hace. multi-user.targetes la elección habitual. graphical.targetes otro.

información relacionada