Não é possível iniciar, mas pode ativar e iniciar o serviço

1

Eu criei o serviço para strelaysvr:

[Unit]
Description=Syncthing Relay Server
After=network.target

[Service]
ExecStart=/usr/bin/strelaysrv -keys /srv/strelaysrv/keys
User=strelaysrv

[Install]
WantedBy=multi-user.target

e colocamos em /srv/strelaysvr/strelaysvr.service , que eu criei links simbólicos para / etc / systemd / system .

Em seguida, fui e systemctl enable d it, systemctl start ed e tudo funciona, tudo bem, até a reinicialização: depois disso, parece "desaparecer":

root@here:~# systemctl start strelaysrv
Failed to start strelaysrv.service: Unit strelaysrv.service not found.
root@here:~# ll /etc/systemd/system/strelaysrv.service 
lrwxrwxrwx 1 root root 34 Apr  2 22:59 /etc/systemd/system/strelaysrv.service -> /srv/strelaysrv/strelaysrv.service
root@here:~# ll /etc/systemd/system/multi-user.target.wants/strelaysrv.service 
lrwxrwxrwx 1 root root 34 Apr  2 23:00 /etc/systemd/system/multi-user.target.wants/strelaysrv.service -> /srv/strelaysrv/strelaysrv.service
root@here:~# ll /srv/strelaysrv/strelaysrv.service
-rw-r--r-- 1 root root 185 Apr  2 22:58 /srv/strelaysrv/strelaysrv.service

Mas apenas chamar systemctl enable é bem-sucedido e posso começar de novo! O que estou fazendo de errado? Estou atingindo um bug do systemd?

root@here:~# lsb_release -a |& grep escr
Description:    Debian GNU/Linux 9.4 (stretch)
root@here:~# dpkg -s systemd | grep ersion
Version: 232-25+deb9u3
    
por Alois Mahdal 07.04.2018 / 19:14

1 resposta

3

O arquivo de unidade (neste caso strelaysrv.service precisa estar em uma partição que já está montada quando o systemd é iniciado, o que não é o caso em seu exemplo, já que nos comentários que você mencionou /srv é um link simbólico para /home , que está em sua própria partição.

Isso aparece com bastante frequência nos relatórios de bugs do systemd, para um recente, veja aqui .

Veja também a ( página man do systemctl (atualizada recentemente) que afirma:

The file system where the linked unit files are located must be accessible when systemd is started (e.g. anything underneath /home or /var is not allowed, unless those directories are located on the root file system).

A solução recomendada é criar uma cópia de strelaysrv.service em /etc/systemd/system em vez de um symlink. Isso deve resolver o problema.

    
por 08.04.2018 / 05:35