May the source be with you, but remember the KISS principle ;-)
Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
(slightly skeptical) Educational society promoting "Back to basics" movement against IT overcomplexity and  bastardization of classic Unix


shutdown - bring the system down

News Classic Unix Utilities Recommended Links at command Who


script watch Linux history command Horror Stories Unix History Humor Etc

The command shutdown  can reboot the system or brings the system down in a secure way.  It has primitive scheduling capability: you can specify delay for N minutes.  If shutdown is called with a delay, it creates the advisory file /etc/nologin which causes programs such as login(1) to not allow new user logins. Shutdown removes this file if it is stopped before it can signal init (i.e. it is cancelled or something goes wrong). It also removes it before calling init to change the runlevel.

More complex scheduling for shutdown in achieved via at command.

Before systemd screwed everything, the -H  option just sets the init environment variable INIT_HALT to HALT, and the -P  option just sets that variable to POWEROFF. The shutdown script that calls halt(8) as the last thing in the shutdown sequence should check these environment variables and call halt(8) with the right options for these options to actually have any effect.

Time of reboot or shutdown is recoded in /var/log/wtmp and can be viewed via last command, for example

last reboot

All logged-in users are notified that the system is going down, and login(1) is blocked. It is possible to shut the system down immediately or after a specified delay. All processes are first notified that the system is going down by the signal SIGTERM . This gives programs like vi(1) the time to save the file being edited, mail and news processing programs a chance to exit cleanly, etc. shutdown  does its job by signalling the init  process, asking it to change the runlevel. Runlevel 0  is used to halt the system, runlevel 6  is used to reboot the system, and runlevel 1  is used to put to system into a state where administrative tasks can be performed; this is the default if neither the -h or -r flag is given to shutdown. To see which actions are taken on halt or reboot see the appropriate entries for these runlevels in the file /etc/inittab.

/sbin/shutdown  [-t  sec] [-arkhncfFHP] time [warning-message]

The time argument is mandatory; in 90% of all cases this argument is the word now.  Which means immediate reboot/shutdown.

/sbin/shutdown -r now

Time of reboot/shutdown is specified as HH:MM. You can use keyword  now instead of time for immediate reboot. For example

/sbin/shutdown -r 21:00

With option -t  you can additionally specify the number of seconds  wait sec seconds between sending processes the warning and the kill signal and changing to another runlevel.

The most important options are:

All options:

The time argument

The time argument can have different formats.

If shutdown is called with a delay, it creates the advisory file /etc/nologin which causes programs such as login(1) to not allow new user logins. Shutdown removes this file if it is stopped before it can signal init (i.e. it is cancelled or something goes wrong). It also removes it before calling init to change the runlevel.


Linux shutdown Command Explained with Examples

Q2. How to halt machine using shutdown?

This can be achieved using the -H option.

shutdown -H

In case you aren't aware, there's a difference between halting and powering off a system. While the former involves stopping all CPUs, the latter also makes sure the main power is disconnected.

Q3. How to make shutdown power-off machine?

Although this is by default, you can still use the -P option to explicitly specify that you want shutdown to power off the system.

shutdown -P
Q4. How to reboot using shutdown?

For reboot, the option is -r.

shutdown -r
Q5. How to make shutdown only write wall message, or vice-versa?

In case you just want shutdown to shoot wall messages, without performing a halt, power-off, or reboot, use the -k command line option.

shutdown -k

Q6. How to cancel a pending shutdown?

You can use shutdown to schedule a halt, power off, or reboot. For this, all you have to do is to pass the time at which you want the process to start. For example:

shutdown -r 18:00

However, in case you want to cancel a scheduled shutdown, you can do that as well. This can be done using the -c command line option.

More examples

• To halt the machine after given number of minutes, for example

$ shutdown -h +30

Broadcast message from root (pts/0) (Tue Nov 6 00:23:48 2012):

The system is going DOWN for system halt in 3 minutes!

• In 24 hour format,

$ shutdown -h 00:45

Broadcast message from root (pts/0) (Tue Nov 6 00:30:54 2012):

The system is going DOWN for system halt in 15 minutes!

• A custom message can also be provided

$ shutdown -h +60 "Disk failed. You have 24 hours to save you files before server sutdown."

Broadcast message from root (pts/0) (Tue Nov 6 00:43:48 2012):

Save your work.
The system is going DOWN for system halt in 5 minutes!

• The shutdown command waits for command completion before giving back the prompt. So it can be cancelled with ctrl+c. Shutdown can also be cancelled with the -c option.

$ shutdown -c


Access Control

shutdown  can be called from init(8) when the magic keys CTRL-ALT-DEL  are pressed, by creating an appropriate entry in /etc/inittab. This means that everyone who has physical access to the console keyboard can shut the system down. To prevent this, shutdown  can check to see if an authorized user is logged in on one of the virtual consoles.

If shutdown  is called with the -a  argument (add this to the invocation of shutdown in /etc/inittab), it checks to see if the file /etc/shutdown.allow is present. It then compares the login names in that file with the list of people that are logged in on a virtual console (from /var/run/utmp). Only if one of those authorized users or root  is logged in, it will proceed. Otherwise it will write the message

shutdown: no authorized users logged in
to the (physical) system console. The format of /etc/shutdown.allow is one user name per line. Empty lines and comment lines (prefixed by a #) are allowed. Currently there is a limit of 32 users in this file.

Note that if /etc/shutdown.allow is not present, the -a  argument is ignored.




A lot of users forget to give the time argument and are then puzzled by the error message shutdown  produces. The time argument is mandatory; in 90 percent of all cases this argument will be the word now.

Init can only capture CTRL-ALT-DEL and start shutdown in console mode. If the system is running the X window System, the X server processes all key strokes. Some X11 environments make it possible to capture CTRL-ALT-DEL, but what exactly is done with that event depends on that environment.

Shutdown wasn't designed to be run setuid. /etc/shutdown.allow is not used to find out who is executing shutdown, it ONLY checks who is currently logged in on (one of the) console(s).

Top Visited
Past week
Past month


Old News ;-)

[Mar 01, 2019] Emergency reboot/shutdown using SysRq by Ilija Matoski
As you know linux implements some type of mechanism to gracefully shutdown and reboot, this means the daemons are stopping, usually linux stops them one by one, the file cache is synced to disk.

But what sometimes happens is that the system will not reboot or shutdown no mater how many times you issue the shutdown or reboot command.

If the server is close to you, you can always just do a physical reset, but what if it's far away from you, where you can't reach it, sometimes it's not feasible, why if the OpenSSH server crashes and you cannot log in again in the system.

If you ever find yourself in a situation like that, there is another option to force the system to reboot or shutdown.

The magic SysRq key is a key combination understood by the Linux kernel, which allows the user to perform various low-level commands regardless of the system's state. It is often used to recover from freezes, or to reboot a computer without corrupting the filesystem.

Description QWERTY
Immediately reboot the system, without unmounting or syncing filesystems b
Sync all mounted filesystems s
Shut off the system o
Send the SIGKILL signal to all processes except init i

So if you are in a situation where you cannot reboot or shutdown the server, you can force an immediate reboot by issuing

echo 1 > /proc/sys/kernel/sysrq 
echo b > /proc/sysrq-trigger

If you want you can also force a sync before rebooting by issuing these commands

echo 1 > /proc/sys/kernel/sysrq 
echo s > /proc/sysrq-trigger
echo b > /proc/sysrq-trigger

These are called magic commands , and they're pretty much synonymous with holding down Alt-SysRq and another key on older keyboards. Dropping 1 into /proc/sys/kernel/sysrq tells the kernel that you want to enable SysRq access (it's usually disabled). The second command is equivalent to pressing * Alt-SysRq-b on a QWERTY keyboard.

If you want to keep SysRq enabled all the time, you can do that with an entry in your server's sysctl.conf:

echo "kernel.sysrq = 1" >> /etc/sysctl.conf

[Nov 21, 2018] Linux Shutdown Command 5 Practical Examples Linux Handbook

Nov 21, 2018 |

Restart the system with shutdown command

There is a separate reboot command but you don't need to learn a new command just for rebooting the system. You can use the Linux shutdown command for rebooting as wel.

To reboot a system using the shutdown command, use the -r option.

sudo shutdown -r

The behavior is the same as the regular shutdown command. It's just that instead of a shutdown, the system will be restarted.

So, if you used shutdown -r without any time argument, it will schedule a reboot after one minute.

You can schedule reboots the same way you did with shutdown.

sudo shutdown -r +30

You can also reboot the system immediately with shutdown command:

sudo shutdown -r now
4. Broadcast a custom message

If you are in a multi-user environment and there are several users logged on the system, you can send them a custom broadcast message with the shutdown command.

By default, all the logged users will receive a notification about scheduled shutdown and its time. You can customize the broadcast message in the shutdown command itself:

sudo shutdown 16:00 "systems will be shutdown for hardware upgrade, please save your work"

Fun Stuff: You can use the shutdown command with -k option to initiate a 'fake shutdown'. It won't shutdown the system but the broadcast message will be sent to all logged on users.

5. Cancel a scheduled shutdown

If you scheduled a shutdown, you don't have to live with it. You can always cancel a shutdown with option -c.

sudo shutdown -c

And if you had broadcasted a messaged about the scheduled shutdown, as a good sysadmin, you might also want to notify other users about cancelling the scheduled shutdown.

sudo shutdown -c "planned shutdown has been cancelled"

Halt vs Power off

Halt (option -H): terminates all processes and shuts down the cpu .
Power off (option -P): Pretty much like halt but it also turns off the unit itself (lights and everything on the system).

Historically, the earlier computers used to halt the system and then print a message like "it's ok to power off now" and then the computers were turned off through physical switches.

These days, halt should automically power off the system thanks to ACPI .

These were the most common and the most useful examples of the Linux shutdown command. I hope you have learned how to shut down a Linux system via command line. You might also like reading about the less command usage or browse through the list of Linux commands we have covered so far.

If you have any questions or suggestions, feel free to let me know in the comment section.

Recommended Links

Google matched content

Softpanorama Recommended

Top articles


shutdown (8)

Commands to Shutdown Linux from Terminal with Examples

Linux shutdown Command Explained with Examples

Linux shutdown command help and examples

5 Linux commands to shutdown and reboot the system – BinaryTides



Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy


War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes


Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law


Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater’s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D

Copyright © 1996-2021 by Softpanorama Society. was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to to buy a cup of coffee for authors of this site


The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the Softpanorama society. We do not warrant the correctness of the information provided or its fitness for any purpose. The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last modified: March, 29, 2020