fstab wait wor ping

My SMB shares are mounted from 192.168.1.2, change to what is correct in your case.

# /etc/systemd/system/wait-for-ping.service
[Unit]
Description=Blocks until it successfully pings 192.168.1.2
After=network-online.target

[Service]
ExecStartPre=/usr/bin/bash -c "while ! ping -c1 192.168.1.2; do sleep 1; done"
ExecStart=/usr/bin/bash -c "echo good to go"
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Enable that service with:

sudo systemctl daemon-reload
sudo systemctl enable --now wait-for-ping.service

Then edit your fstab as follows to include this as final mount option:

x-systemd.after=wait-for-ping.service

Do another systemctl daemon-reload and you can verify that your mount target has the correct option set. My mount target is /mnt/media, that creates mnt-media.mount, so do:

systemctl cat mnt-media.mount

This should have an header like this:

# Automatically generated by systemd-fstab-generator

[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
After=wait-for-ping.service

# ... rest of file follows ...

Reboot your machine and you should find your mounts waiting until a ping succeeds.


Posted

in

by

Tags:

WordPress Appliance - Powered by TurnKey Linux