Il riavvio raramente è il problema. A rompersi è la cosa che qualcuno ha avviato a mano durante un incidente e non ha mai abilitato: resta in piedi soltanto finché nessuno riavvia la macchina. Le trovi prima di avere bisogno di riavviare, non dopo.

Prima: che cosa gira senza essere abilitato

systemctl list-units --type=service --state=running --no-pager \
  | awk '{print $1}' | grep '\.service$' \
  | xargs -I{} sh -c 'systemctl is-enabled {} >/dev/null 2>&1 || echo "NOT ENABLED: {}"'

Tutto ciò che compare lì non tornerà su. Lo abiliti adesso: sudo systemctl enable name.

Controlli anche

  • I mount fatti a mano - findmnt confrontato con /etc/fstab. Veda aggiungere un secondo disco.
  • Le regole di firewall aggiunte direttamente con iptables, che non vengono salvate se nulla le rende persistenti.
  • Tutto ciò che è stato avviato dentro una sessione tmux o screen, che non sopravvive.
  • Un aggiornamento del kernel in attesa, così sa se questo riavvio cambia anche il kernel.

Riavvii

sudo shutdown -r +1 "maintenance reboot"   # a minute of warning
# or now:
sudo systemctl reboot

Dopo: lo dimostri, non lo dia per scontato

systemctl --failed --no-pager
systemd-analyze blame | head
df -h
curl -sS -o /dev/null -w '%{http_code}\
' https://yourdomain.com
Il momento migliore per provare un riavvio è quando non c'è niente che non va. Un server acceso da 400 giorni si porta dentro 400 giorni di modifiche fatte a mano e non documentate, e il primo riavvio le trova tutte insieme.
Se la macchina non torna su, le serve l'accesso alla console dal pannello del fornitore, non SSH. Sappia dov'è quel pulsante prima di averne bisogno.