Arch Linux is great, change is great, except when you don’t know what has changed and why.
Case in point, my home server is up 100+ days, I update and reboot. My web access is gone and SSH doesn’t work either. When I regained physical access, I see both services are failed as they could not bind to the network card, that’s funny because samba, ftp and NFS all managed fine. Why?
As I’m running systemd I was able to figure out the following with a few ‘systemctl status something.service’ commands. sshd and apache come up before the network card, they retry but fail. 5 seconds later the network is up, so when I restart the services manually all works as expected.
Fixing it was a bit more messy. Both systemd scripts are small and simple both specify ‘After=network.target’ that target doesn’t give away much. I’m using NetworkManager so I changed both to ‘After=NetworkManager.service’.
Result, the services http/SSH start later but still too soon. Appears NetworkManager has started but not completed its job yet.
This “service” starts when network manager completes its startup, so telling SSH and http that they start after this will ensure the network is up.
Fixed! until the next update 🙂