Como fazer um serviço do Systemd rodar para sempre ("Bootup ainda não terminou. Por favor, tente novamente mais tarde").

5

Eu criei um serviço systemd que tem que ser executado para sempre (porque faz o trabalho principal no meu computador incorporado):

# /etc/systemd/system/samplerbox.service
########################################
[Unit]
Description=Starts SamplerBox

[Service]
Type=oneshot
ExecStart=/root/SamplerBox/samplerbox.sh
WorkingDirectory=/root/SamplerBox/

[Install]
WantedBy=multi-user.target

Aqui está o que realmente faz:

# /root/SamplerBox/samplerbox.sh
################################
#!/bin/sh
python /root/SamplerBox/samplerbox.py

Eu habilitei este serviço com

systemctl enable /etc/systemd/system/samplerbox.service

Funciona e é iniciado na inicialização.

No entanto, como ativei este serviço, quando faço systemd-analyze , vejo:

Bootup is not yet finished. Please try again later.

Além disso, recebo esta informação mostrando que o serviço ainda é visto como "ativando" / iniciando:

# systemctl status samplerbox
â samplerbox.service - Starts SamplerBox
   Loaded: loaded (/etc/systemd/system/samplerbox.service; enabled)
   Active: activating (start) since Thu 1970-01-01 00:14:01 UTC; 11min ago
 Main PID: 258 (samplerbox.sh)
   CGroup: /system.slice/samplerbox.service
           ââ258 /bin/sh /root/SamplerBox/samplerbox.sh
           ââ260 python /root/SamplerBox/samplerbox.py

Como fazer um serviço funcionar corretamente para sempre?

    
por Basj 30.05.2015 / 01:49

1 resposta

5

A solução foi bastante simples: é preciso substituir

[Service]
Type=oneshot

por

[Service]
Type=simple

Este documento declara:

Type=simple (default): systemd considers the service to be started up immediately. The process must not fork. Do not use this type if other services need to be ordered on this service, unless it is socket activated.

...

Type=oneshot: this is useful for scripts that do a single job and then exit. You may want to set RemainAfterExit=yes as well so that systemd still considers the service as active after the process has exited.

    
por 30.05.2015 / 02:03