Posso montar uma unidade antes que o systemd-sysv-generator seja executado?

0

Estou no processo de atualização de um sistema baseado em sysv para systemd (CentOS 6 - > 7), e gostaria de contar com systemd-sysv-generator para executar alguns serviços que ainda possuem seus scripts em / etc / init.d.

O problema é que alguns dos arquivos em /etc/init.d são realmente links para arquivos em uma partição secundária.

Parece que essa partição ainda não está montada quando systemd-sysv-generator é executado, e tudo que vejo no log é um monte de erros "nenhum arquivo ou diretório" do script do gerador. A documentação do Systemd diz que os geradores executam " muito cedo na inicialização ", e o processamento de / etc / fstab acontece muito mais tarde.

Eu acho que o que eu preciso fazer é de alguma forma tornar o initramfs ou o kernel montar a unidade secundária, mas não sei se isso é possível. As respostas para este e este As perguntas não são muito encorajadoras e parecem sugerir que esta é, no mínimo, uma abordagem não ortodoxa.

Outra opção pode ser re-executar o gerador após a unidade ter sido montada, mas eu não sei como fazer isso, e se será "muito tarde", por assim dizer, e os serviços vão ficar criado, mas não iniciado.

O que devo fazer?

EDIT: Para torná-lo mais concreto, digamos que minha partição raiz esteja em /dev/sda1 e eu tenha uma partição secundária em /dev/sda2 , geralmente montada como /secondary . /etc/init.d/myservice é um link simbólico para /secondary/myservice . Isso costumava funcionar bem, mas parou de funcionar no systemd pelas razões mencionadas.

    
por itsadok 14.05.2018 / 22:21

2 respostas

1

Aproveitarei para fazer uma criação única dos arquivos systemd ".service" adequados para seus serviços legados. Isso simplificará o sistema, resolvendo o problema da ordem de inicialização e eliminando a tradução do sistema sysV- > mais tarde.

Se os seus serviços legados forem fornecidos por terceiros, você poderá descobrir que eles publicaram arquivos systemd .service para versões mais recentes que você pode facilmente adaptar para as versões mais antigas que estão sendo executadas.

Outra opção é simplesmente copiar os scripts de inicialização da segunda partição para a partição de inicialização. Adicione um comentário aos arquivos para lembrar os futuros administradores de copiá-los para o segundo local, se fizerem alterações.

    
por 14.05.2018 / 22:29
0

Force systemd mounting algumas partições antes de qualquer coisa

It would work if you treated your [secondary filesystem] like usr, i.e. mount it in the initramfs. Obviously this will require the initramfs to set up networking. The initramfs transition is equivalent to a daemon-reload, but you're not introducing one of those at a new point. dracut has specific support for mounting additional filesystems. ... I would specifically recommend using the mount option x-initrd.mount in fstab to mark the mount, as systemd also applies some special handling in this case.

    
por 17.05.2018 / 11:34