When administering Unix/Linux servers, understanding the proper shutdown procedures is crucial for system stability and data integrity. The main commands available are:
shutdown -h now # Halts the system
shutdown -r now # Reboots the system
halt # Alternative halt command
reboot # Alternative reboot command
poweroff # Powers off the system
The shutdown
command is the most comprehensive and recommended method for stopping or restarting a system. It performs several important functions:
- Notifies all logged-in users
- Prevents new logins
- Executes proper service shutdown through init scripts
- Ensures filesystems are properly unmounted
# Schedule shutdown in 5 minutes
shutdown -h +5 "System maintenance"
# Immediate reboot with custom message
shutdown -r now "Critical kernel update"
Many administrators wonder about the distinction between these commands:
halt # Stops CPU but may leave power on (depends on hardware)
poweroff # Stops CPU and sends ACPI signal to power down
Modern systems typically have halt
symlinked to poweroff
, but it's good practice to be explicit. The poweroff
command is generally preferred when you want to completely power down the hardware.
For mission-critical systems, follow these guidelines:
- Always check active users with
who
orw
- Consider running
sync
before shutdown to flush buffers - For remote servers, use
nohup
with shutdown commands
# Safe remote shutdown example
nohup shutdown -h +10 "Planned maintenance" >/dev/null 2>&1 &
If your system isn't responding to normal shutdown procedures:
# Force immediate reboot (use with caution)
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
# Alternative magic sysrq sequence
echo "o" > /proc/sysrq-trigger # poweroff
Remember that these emergency methods don't perform clean service shutdowns and should only be used as last resorts.
When managing Unix/Linux servers, proper shutdown procedures are crucial for system stability and data integrity. The main commands available are:
shutdown -h now # Shutdown and halt the system immediately
shutdown -r now # Reboot the system immediately
halt # Stop all processes and halt the CPU
poweroff # Halt the system and power it off
reboot # Restart the system
The shutdown
command is the most comprehensive and recommended way to bring down a system:
# Schedule a shutdown in 10 minutes
shutdown -h +10 "System maintenance"
# Immediate reboot with custom message
shutdown -r now "Critical kernel update"
Key advantages of shutdown
:
- Broadcasts warnings to logged-in users
- Allows scheduling shutdowns
- Provides clean termination of processes
- Works consistently across different init systems
Many administrators get confused between these commands:
halt # Stops CPU execution but may not power off
poweroff # Stops CPU and sends ACPI signal to power down
halt -p # Alternative way to power off (equivalent to poweroff)
On modern systems, halt
typically powers off the machine, but this behavior depends on the system configuration. For guaranteed power off, always use poweroff
or shutdown -h now
.
On systems using systemd, these commands have slightly different behavior:
systemctl poweroff # Powers off the machine
systemctl reboot # Reboots the system
systemctl halt # Halts the system
These commands are preferred on systemd systems as they properly trigger all the necessary systemd targets and units.
In rare cases where normal shutdown isn't working, you can force immediate action:
shutdown -h -f now # Force immediate halt
reboot -f # Force immediate reboot
Warning: These commands skip proper service shutdown and can lead to filesystem corruption. Only use when absolutely necessary.
- Always notify users before shutdown (use wall command)
- Consider running
sync
before shutdown to flush filesystem buffers - For remote servers, use nohup or screen to prevent connection drop from interrupting shutdown
- Document shutdown procedures for your specific distribution
Here's a complete example for safely shutting down a remote server:
# Notify all users
wall "Server will shutdown in 5 minutes for maintenance"
# Schedule shutdown
shutdown -h +5 "Planned maintenance shutdown"
# Alternative: Immediate safe shutdown using nohup
nohup shutdown -h now &