Alterando as dependências do systemd durante a inicialização

3

Estou procurando uma maneira de instruir o systemd a recalcular as dependências de serviço enquanto o sistema está inicializando. Especificamente, eu preciso de um serviço para habilitar outro serviço e ter o segundo serviço sendo iniciado mais tarde na mesma seqüência de inicialização. Isso faz parte do meu processo de implantação automática; muito cedo no processo de inicialização, a primeira vez que o sistema é inicializado, ele se configura automaticamente. Um dos passos que pode ser necessário é ativar outros serviços. Infelizmente, qualquer alteração feita nessa etapa parece não ter efeito até a próxima reinicialização. A reinicialização da máquina após a implantação inicial não é uma opção.

Aqui está uma ideia generalizada do que estou tentando alcançar

/etc/systemd/system/firstboot.service:

[Unit]
Description=Enable MyService
DefaultDependencies=no
After=sysinit.target
Before=basic.target

[Service]
Type=oneshot
ExecStart=/bin/systemctl enable myservice.service
ExecStartPost=/bin/systemctl disable firstboot.service

[Install]
RequiredBy=basic.target

/etc/systemd/system/myservice.service:

[Unit]
Description=MyService

[Service]
Type=simple
ExecStart=/usr/local/bin/myservice

[Install]
WantedBy=multi-user.target

Infelizmente, isso não funciona como eu esperava; o serviço está ativado, mas não é iniciado antes de multi-user.target :

$ systemctl status myservice
myservice.service - MyService
   Loaded: loaded (/etc/systemd/system/myservice.service; enabled)
   Active: inactive (dead)

Eu posso forçá-lo a começar com systemctl isolate multi-user.target ou reinicializando a máquina.

Eu tentei adicionar systemctl daemon-reload e / ou systemctl daemon-reexec a ExecStart / ExecStartPost de firstboot.service , mas nenhum deles parece ter efeito.

Existe alguma maneira que eu possa dizer ao systemd para recalcular o caminho de inicialização e incluir as mudanças que foram feitas enquanto ele ainda estava sendo inicializado? Ou precisarei fazer algo mais tarde no processo de inicialização para forçar o início do meu serviço?

    
por AdmiralNemo 06.06.2014 / 16:34

0 respostas

Tags