Aguarde até que o serviço systemd oneshot termine

5

Estou fazendo algum provisionamento de servidor e preciso executar um script APÓS a instalação, já que ele exige que o sistema esteja totalmente funcional, inclua serviços. Então eu não posso colocá-lo dentro da seção %post do meu arquivo de kickstart.

Em vez disso, criei um serviço systemd que se desativa como a última coisa que faz.

[Unit]
Description=Prepare the system after installation

[Service]
Type=oneshot
ExecStart=/usr/bin/prepare-system

[Install]
WantedBy=multi-user.target

O problema é que, durante a primeira inicialização, eu chego ao prompt de login e posso até mesmo fazer login e começar a usar o sistema, enquanto o "primeiro script de inicialização" ainda está em execução.

Isso dá ao administrador configurando o sistema a ilusão de que o sistema terminou, quando na verdade não é.

Eu gostaria que o serviço atrasasse a inicialização, de preferência mostrando uma mensagem como "O sistema está sendo preparado, por favor aguarde ..." e espere até que o script termine.

    
por Christoffer Reijer 24.02.2017 / 15:59

2 respostas

1

Encontrei a resposta aqui: link

Basta definir Before para quando o terminal estiver disponível:

[Unit]
Description=Prepare the system after installation
[email protected] [email protected] [email protected] [email protected] [email protected] [email protected]

[Service]
Type=oneshot
ExecStart=/usr/bin/prepare-system

[Install]
WantedBy=multi-user.target
    
por 24.02.2017 / 19:32
1

Supondo que você use o GDM como seu gerenciador de login, adicione uma linha com Before=gdm.service na seção [Unit] .

Se você não usa o gdm, descubra qual serviço inicia o xorg e coloque-o na linha Before= .

Isso fará com que a tarefa seja concluída antes que o gerenciador de login seja exibido.

    
por 24.02.2017 / 18:37