Potrebbe capitare di avere una folder montata, come ad esempio uno share NFS, che durante lo spegnimento del server Ubuntu/Debian potrebbe ritrovarsi occupata e dare problemi, facendoci attendere anche diversi minuti.
Infatti nella console, prima dello spegnimento, possiamo notare una scritta simile a:
[FAILED] Failed unmounting nome-share.mount – /mnt/nome-share
Per prima cosa dobbiamo individuare quali servizi utilizzano questa folder, e poi possiamo procedere con la creazione di un servizio di systemd che aspetti la chiusura dei servizi dipendenti e poi smonti in maniera forzata la nostra share.
Esempio
Poniamo il caso che la nostra folder si chiami –> /mnt/nfs-share e che sia utilizzata da diversi container docker.
Dobbiamo creare un servizio systemd che appena prima dello spegnimento della macchina, vada a terminare il servizio docker, e poi a fare l’umount di /mnt/nfs-share
Procedimento
Crea un file di servizio personalizzato in /etc/systemd/system
con un nome significativo, ad esempio umount-nfs-share.service
:
sudo vim /etc/systemd/system/umount-nfs-share.service
All’interno di questo file, inserisci le seguenti righe per definire il servizio:
[Unit] Description=Umount /mnt/nfs-share before shutdown Before=shutdown.target Requires=docker.service After=docker.service [Service] Type=oneshot RemainAfterExit=true ExecStart=/bin/true ExecStop=/bin/umount -f -l /mnt/nfs-share [Install] WantedBy=multi-user.target
Andiamo ovviamente a sostituire sia i servizi che utilizzano la nostra folder, che il nome della nostra folder.
Adesso possiamo avviare e abilitare il nostro service:
sudo systemctl enable umount-nfs-share.service sudo systemctl start umount-nfs-share.service
Ora il servizio umount-nfs-share.service
sarà attivo prima dello spegnimento del sistema e aspetterà lo spegnimento del servizio docker.service
prima di eseguire l’azione di smontaggio della directory /mnt/nfs-share
.