Sebbene entrambe le risposte siano corrette, voglio aggiungere i miei due centesimi alla discussione, perché quando l'ho cercata mi mancavano alcune istruzioni ed esempi su come procedere.
- Aggiungi il filesystem a
/etc/fstab
- Tipo
mount -a
che monta tutti i filesystem menzionati in fstab
- Cerca l'unità systemd che è stata generata con:
systemctl list-units | grep '/path/to/mount' | awk '{ print $1 }'
(dovrebbe restituire qualcosa che termina con .mount
)
- Aggiungi l'unità di montaggio trovata
After=
all'istruzione nel *.service
file
Ecco un esempio di avvio del my-daemon
servizio all'avvio ma dopo che la rete è pronta, viene montata una condivisione CIFS /mnt/cifs
e il vpn-launch
servizio è stato avviato:
/ Etc / fstab
//servername/sharename /mnt/cifs cifs defaults,some,other,options 0 0
Nota: è possibile che si desideri aggiungere nofail
alle opzioni fstab (ad es. Quando si utilizza un'unità esterna). In caso contrario, il computer non si avvierà se il dispositivo non è collegato. Vedi l'articolo fstab di 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
Non dimenticare di abilitare il servizio in modo che venga avviato all'avvio: systemctl enable my-daemon
Nota che questo funziona anche con altri filesystem (NFS, HDD, ecc.).
Come già accennato, entrambe le risposte sono corrette e incoraggio tutti a leggerle ma per me un paio di esempi mi avrebbero risparmiato un po 'di tempo.
Aggiornamento (25/06/2019):
- aggiunta una nota relativa alle opzioni di fstab per impedire il blocco dell'avvio quando si utilizzano unità esterne
- aggiunto
mnt-cifs.mount
alla Requires=
lista che fa sì che il my-daemon.service
non riuscire a start-up quando i CIFS mount non è stato montato con successo
systemd-remount-fs
alla tuaAfter
lista?