Embora ambas as respostas estejam corretas, quero acrescentar meus dois centavos à discussão, porque, quando a procurei, estava perdendo algumas instruções e exemplos de como proceder.
- Adicione o sistema de arquivos ao
/etc/fstab
- Tipo
mount -a
que monta todos os sistemas de arquivos mencionados no fstab
- Procure a unidade systemd que foi gerada com:
systemctl list-units | grep '/path/to/mount' | awk '{ print $1 }'
(deve retornar algo que termina com .mount
)
- Adicione a unidade de montagem encontrada à
After=
instrução no *.service
arquivo
Aqui está um exemplo de como iniciar o my-daemon
serviço na inicialização, mas após a rede estar pronta, um compartilhamento CIFS é montado em /mnt/cifs
e o vpn-launch
serviço foi iniciado:
/ etc / fstab
//servername/sharename /mnt/cifs cifs defaults,some,other,options 0 0
Nota: Você pode querer adicionar nofail
às suas opções fstab (por exemplo, ao usar uma unidade externa). Caso contrário, sua máquina não inicializará se o dispositivo não estiver conectado. Veja o artigo fstab do ArchWiki
/etc/systemd/system/my-daemon.service
[Unit]
Description=Launch My Daemon
Requires=vpn-launch.service mnt-cifs.mount
After=network.target vpn-launch.service mnt-cifs.mount
[Service]
ExecStart=/path/to/my-daemon
[Install]
WantedBy=multi-user.target
Não se esqueça de ativar o serviço para que ele seja iniciado na inicialização: systemctl enable my-daemon
Observe que isso funciona para outros sistemas de arquivos (NFS, HDDs etc.) também.
Como já mencionado, ambas as respostas estão corretas e eu incentivo todos a lê-las, mas para mim alguns exemplos teriam me poupado algum tempo.
Atualização (25/06/2019):
- adicionou uma observação sobre as opções do fstab para impedir o bloqueio de inicialização ao usar unidades externas
- adicionado
mnt-cifs.mount
à Requires=
lista que causa my-daemon.service
falha na inicialização quando a montagem cifs não foi montada com sucesso
systemd-remount-fs
à suaAfter
lista?