fstab tempo de montagem

1

Estou trabalhando em um script que deve ser executado na inicialização, mas o problema é que o script requer alguns arquivos que estão em uma unidade compartilhada que é montada automaticamente via fstab e, no momento de sua execução, a unidade não está montada ainda.

Eu tentei usar o cron @reboot e o init.d route, mas eles são executados cedo demais. Eu também considerei adicionar mount -a ao script, mas eu preferiria evitar ter sudo . Por enquanto, acabei de adicionar um atraso para que funcione, mas isso parece um pouco hacky.

Existe uma maneira de garantir que um script de inicialização seja executado após o fstab ser processado? Ou force as montagens a serem processadas sem usar sudo ?

    
por Maxim 19.07.2018 / 17:29

2 respostas

2

Para isso, você precisa executar seu script como uma unidade systemd (supondo que tenha o systemd), onde você poderia definir a dependência ...

Se você quiser ficar com o cron @reboot (o que parece ser a escolha mais simples) você precisa tornar seu script um pouco mais inteligente (ou iniciar o cron após montagens fs ... que mudança eu faria sugiro). Em vez de um simples atraso, você pode verificar se o sistema de arquivos requerido está montado (no bash):

while ! mount | awk '{print $3}' | grep -qx /the/mountpoint; do
    sleep 1
done

Ou você pode verificar se o arquivo está lá do que você precisa:

while ! [ -f /that/file ] ; do
    sleep 1
done
    
por 19.07.2018 / 17:43
0

Suponho que você esteja em uma distribuição relativamente nova do Linux, então talvez seja necessário verificar systemd manual, já que SysV não está mais sendo usado nas instalações de distribuição padrão e esse é provavelmente o seu problema . systemd permite dependências de inicialização nas quais você especifica quais scripts são executados antes dos outros.

Verifique o próximo link

    
por 19.07.2018 / 17:39