How do I restart Linux (Ubuntu) from the command-line?

There's a few ways:

sudo reboot
sudo init 6
sudo shutdown -r now

If you've got freedesktop-compliant session manager, you can use DBus to invoke restart from inside the X session. The command goes:

dbus-send --system --dest=org.freedesktop.Hal --type=method_call \
    --print-reply /org/freedesktop/Hal/devices/computer \
    org.freedesktop.Hal.Device.SystemPowerManagement.Reboot int32:0

(this is probably more than necessary; works for me). I use this in a shell script. You don't need to run this from root, but you need to run it from inside an X session (f.e. in a terminal). You can find more on this topic at https://wiki.ubuntu.com/DebuggingGNOMEPowerManager


Occasionally, the usual (and preferred) reboot and shutdown commands don't work. I've seen this on a system with problems (which is why it needed rebooting).

You can trigger the "Magic SysRq" mechanism from the commandline:

echo b >/proc/sysrq-trigger

This is equivalent to alt-SysRq+b and will reboot the machine.

You may want to try "s" and "u" first to sync discs and unmount filesystems respectively.