As a Sysadmin, one of the frequent activities is to reboot or power off servers.

This could be due to regular maintenance activity like OS patching or due to some hardware failure which requires system to be powered down for maintenance.

A Linux system offers several different ways to reboot or shutdown the server. A normal system should respond to any command while a degraded server may need to be rebooted forcefully. Do note that most of these commands will require certain level of privilege either as superuser or with sudo to be executed successfully since rebooting a system is and administrative task and for a multi-user system or server running critical processes, reboot or shutdown is a disruptive activity.

This article covers few such methods which can help you out with Linux reboot/shutdown activity.

GUI Method

If you’re using a GUI Desktop Environment for Linux like Gnome, KDE, Mate, XFCE etc., you’ll find a power button in system/application menu which offers actions such as logout, reboot, hibernate or power off. Available options may differ slightly depending upon which distribution, desktop environment and version of OS is in use. But you’ll definitely find power related settings in available menus to change the power state of your system.

For example, in my Ubuntu Mate desktop, I can find Shut Down option in power menu at the top right of my screen.

How to Reboot and Shutdown Linux Servers? linux Sysadmin

Once you select “Shut Down…” option, you’ll be presented with a dialog with multiple options like Suspend, Restart, Cancel and Shut Down. You can either proceed with Restart or Shut Down by clicking on right button or cancel and get back to your desktop environment.

How to Reboot and Shutdown Linux Servers? linux Sysadmin

Offered GUI and options may differ slightly on the distribution and Desktop Environment you’re using but rest assured there is an option to change power state of the system. And with GUI, it’s no more than few clicks in power menu.

systemctl Command

On a Linux box running systemd as the init system, you can use systemctl command to reboot your machine.

$ sudo systemctl start reboot.target

Or you can simply use systemctl with required option, like for reboot as:

$ sudo systemctl reboot

For initiating a shutdown, systemctl command goes like:

$ sudo systemctl shutdown

To halt the system, use:

$ sudo systemctl halt

shutdown Command

shutdown command can be used to power down as well as reboot a Linux system. To reboot a system immediately use:

$ sudo shutdown -r now

Or to power down a system without wait, use -h or -P flag:

$ sudo shutdown -P now 

We can add a delay to shutdown command to reboot/power off the system after specified interval. This can be achieved as:

$ sudo shutdown -r 10

To halt a system without asking hardware to power off, you can use -H flag:

$ sudo shutdown -H now

If you simply specify shutdown command, shutdown will get scheduled after a minute. To shutdown at specific time use:

$ sudo shutdown 22:30

In many cases, while a system is going down it’ll broadcast a message to the console of logged in users. If you want to add your custom message in this broadcast, you can specify a message along with shutdown command as:

$ sudo shutdown 23:00 "Powering off system for maintenance...save your work"

To cancel a scheduled shutdown, you can use -c flag:

$ sudo shutdown -c

On some systems, shutdown command call systemctl in backend to achieve desired reboot/shutdown operation.

Reboot Command

To gracefully reboot a system, you can also use reboot command (may need to use with sudo).

$ sudo reboot

To power off the system with reboot command, use -p flag:

$ sudo reboot -p

To force a reboot (for systems not responding to normal reboot command), you can try -f flag as:

$ sudo reboot -f

Halt Command

To halt a system, you can simply use halt command:

$ sudo halt

Poweroff Command

To power off a system, you have the option to use poweroff command:

$ sudo poweroff

init Command

For systems not running on systemd, init (telinit will also work) command offers options to change system’s run-level. To reboot a system using init, you can use:

$ sudo init 6

Similarly to halt a system, the init command to use is:

$ sudo init 0

Calling a specific run-level using init causes the system’s init process to execute a series of init scripts in a particular order to ensure system reaches the desired run-level. Run-level 6 is defined for reboot while run-level 0 if for halting the system.

Power Button

For Linux running on a desktop or laptop, pressing the power button by default have the action of either putting the system to sleep or powering it down by sending the shutdown signal. This option can be tweaked from the system’s power settings. Although it should ideally be used as last option, if normal commands don’t work.

For a remote server running linux, power button usually powers off the system. But those located in remote data centers have the additional option to be rebooted or powered off from their remote lights-out management CLI/GUI tools offered by respective server vendor.

Alt SysRq Combination

For a non-responding, frozen system, it’s hard to bring it to a reboot or powered off state. When you’ve no other option and as a last resort, you can try pressing Alt PrintScreen a sequence of keys in order to instantly reboot the system. It may not be a preferred or recommended option but nevertheless can be used as a last resort.

Always remember that there is possibility of data loss and corruption using this method as with any other non-graceful, forced reboot or shutdown option will have. Ensure system best practices for backups and redundancy and be careful when using this option.

For this option to work, it should have been enabled in the Linux kernel. You can check this by using below command:

$ cat /proc/sys/kernel/sysrq

An output of 1 indicates its enabled completely, while a number greater than indicates its partially enabled with some features. To enable it explicitly, you can use:

$ sudo echo “1” > /proc/sys/kernel/sysrq

To reboot a system using this method, keep holding Alt SysRq (PrintScreen) and then press in sequence following keys after interval of few seconds between each key:

R E I S U B

or to shutdown press O instead of B at the end:

R E I S U O

Here what the keys mean:

  • R: Switch keyboard from raw to XLATE mode
  • E: Send SIGTERM signal to all processes except init
  • I: Send SIGKILL signal to all processes except init
  • S: Sync all mounted filesystems
  • U: Remount all mounted filesystems as read-only

Lastly, we’ve either B or O which stands for:

  • B: Immediately reboot the system, without unmounting partitions or syncing

OR

  • O: Immediately shutdown the system, without unmounting partitions or syncing

Summary

So here goes different ways that allows you to reboot or shutdown a Linux system. It offers you options ranging from simple GUI interfaces to relatively complex terminal commands that can make your life easy or even allows you to automate stuff. For systems which froze for one reason or another, we discussed forced ways to achieve a reboot or shutdown state which may not be the ideal way but have to be used on rare occasions.

Take precautions while using the commands discussed in this article as they affect system state and could possibly affect multiple users and services in case of an enterprise server. Check out the man pages of commands suggested in this article to learn more about them and what all options they offer.