If a linux reboot fails by just running the reboot command (sometimes there are run away or hanging processes), you may get the following errors (if you view the logs of systemctl, it will give you a better indication of what is crashing and not letting it reboot):
Failed to start reboot.target: Connection timed out
See system logs and 'systemctl status reboot.target' for details.
A quick way to fix this (short of pulling the plug), is to force reboot using systemctl:
systemctl --force --force reboot
This will force a restart: