How to use the Linux Shutdown Command to Turn-off, Halt, or Reboot a System

Updated on 07 May, 2025
How to use the Linux Shutdown Command to Turn-off, Halt, or Reboot a System header image

Managing Linux systems often requires proper shutdown and restart procedures during scheduled maintenance, system upgrades, or when deploying automated scripts. The shutdown command in Linux is a powerful tool for turning off, halting, or rebooting a system.

In this article, you’ll learn how to use the shutdown command and related commands like halt and reboot for various use cases. This article is ideal for system administrators, DevOps engineers, or anyone managing Linux machines.

Linux Shutdown Command Syntax

The general syntax of the shutdown command is:

shutdown [OPTIONS] [TIME] [MESSAGE]
  • OPTIONS: Choose between -h for halt or -r for reboot.
  • TIME: Specify when the shutdown should occur (for example, now, +10, 18:30).
  • MESSAGE: An optional message to be displayed to all logged-in users.

Common Options

  • -h: Halt the system.
  • -r: Reboot the system.
  • -c: Cancel a scheduled shutdown.
  • now: Execute shutdown.

Shutdown a Linux System

To shut down the system:

console
$ sudo shutdown -h now

This command shuts down the system immediately. You can also schedule a shutdown:

console
$ sudo shutdown -h +10 "System will shut down in 10 minutes for maintenance."

This command schedules the system to shut down in 10 minutes and sends a custom message to logged-in users.

Halt a Linux System

The halt command is a lower-level alternative to shutdown. It stops all CPU functions but does not always power off the system, depending on your configuration:

console
$ sudo halt

halt command behaves like the shutdown -h now command.

Note
When you shut down a remote Linux machine, like a virtual machine on the cloud where you do not have access to its physical power button, you'll have to use some way to start it up again. Most cloud providers offer their users some way to turn on or restart the system, like a web interface or a command-line tool.

Reboot a Linux System

To reboot the system, use the -r flag:

console
$ sudo shutdown -r now

You can also schedule a reboot:

console
$ sudo shutdown -r +5 "Rebooting in 5 minutes for updates."

Or use the reboot command:

console
$ sudo reboot

This command performs the same action as shutdown -r now.

Schedule Shutdown, Restart, or Halt in Linux

You can schedule operations using time-based arguments.

Schedule at a Specific Time

Shutdown at 11:00 PM:

console
$ sudo shutdown -h 23:00

Cancel a Scheduled Shutdown

If you need to cancel a pending shutdown or reboot:

console
$ sudo shutdown -c

Add an optional message:

console
$ sudo shutdown -c "Shutdown canceled by admin."

Advance Scheduling of the shutdown Command

You can use the cron service to schedule a shutdown, halt, or reboot operation. In this section, you'll schedule a shutdown with a message.

  1. Open the crontab file as sudo.

    console
    $ sudo crontab -e
    

    It prompts you to choose a text editor of your choice.

    no crontab for root - using an empty one
    
    Select an editor.  To change later, run 'select-editor'.
      1. /bin/nano        <---- easiest
      2. /usr/bin/vim.basic
      3. /usr/bin/vim.tiny
      4. /bin/ed
    
    Choose 1-4 [1]: 1

    Make a choice and proceed.

    Note
    Using sudo to edit the crontab file makes the root user run the specified command.
  2. Add this line to it.

    ini
    0 23 * * * /usr/sbin/shutdown -h +30 "The system will shutdown in 30 minutes."
    

    Save and exit the editor. This Cron Job shuts down the system daily at 23:30 and alerts every logged-in user with the specified message 30 minutes earlier.

    Note
    Use full paths in crontab (such as /usr/sbin/shutdown) to ensure the job runs as expected.

A Cron Job is created to shut down the system at 23:30. At 23:00, every logged-in user gets the specified message.

Broadcast message from root@linuxserver on pts/1 (Thu 2025-04-17 23:00:01 UTC):

The system will shut down in 30 minutes.

At 23:30, the system shuts down.

Conclusion

The shutdown command is a core tool for anyone managing Linux servers. Whether you're planning maintenance or restarting after updates, understanding how to use shutdown, halt, and reboot can help you manage systems efficiently.

By combining these commands with tools like cron, you can automate reboots and shutdowns as part of your daily operations and server maintenance strategy.

Comments

No comments yet.