导航菜单

Linux命令大全-关机和重启命令详解

陆兴东 2026-04-07 18 浏览 Linux命令

概述

在Linux 系统中,关闭或重启计算机并非只是简单地切断电源。为了确保数据安全和系统稳定性,Linux 提供了一系列命令,用于优雅地终止所有运行中的进程、同步数据到磁盘,最后再执行硬件关机或重启操作。正确使用这些命令是系统管理的基础。

以下是我参考网络资料并结合个人理解,整理出的关机和重启命令介绍。若存在理解不到位之处,还请谅解。

原则

权限要求:绝大多数关机命令需要root 超级用户权限。普通用户通常通过 sudo 命令来临时获取权限执行。

安全第一:首选能提供警告和延迟的命令,尤其是在多用户环境或服务器上,给予其他用户保存工作的时间。

理解背后机制:在现代Linux 系统(如 Ubuntu, CentOS, Fedora 等)中,关机流程主要由 systemd 系统和服务管理器控制,传统命令最终大多会调用 systemctl。

一、首选命令:shutdown

shutdown 命令是最安全、最灵活且最推荐的关机方式。它允许计划一个时间关机,并向所有已登录用户发送广播消息。

1.基本语法

shutdown [选项] [时间] [警告消息]

2.常用选项

-h: Halt,停止系统。后接时间参数,表示关机。

-r: Reboot,重启系统。

-c: Cancel,取消计划的关机任务。

3.时间参数

now: 立即执行。

+m: 在 m 分钟后执行(例如 +10 表示10分钟后)。

hh:mm: 在指定的 24 小时制时间执行(例如 23:00)。

4.常用示例

命令

用途

shutdown -h now

立即安全关机

shutdown -r now

立即安全重启

shutdown -h 23:00

在今天晚上23:00关机

shutdown -r +10

10分钟后重启

shutdown -h +10 “系统维护,请保存工作!”

10分钟后关机,并发送警告消息

shutdown -c

取消所有计划的关机任务

安全机制:shutdown 会先发送友好信号 (SIGTERM) 请求程序退出,超时后再强制终止 (SIGKILL),最后调用 systemctl 完成关机,最大限度保证数据完整性。

二、其它常用命令

这些命令可以视为 shutdown 的快捷方式,但缺少了计划时间和广播消息的灵活性,更适用于个人桌面环境或脚本中。

1.poweroff

作用:立即关闭系统并切断电源。

本质:相当于 shutdown -h now 的快捷方式。

用法:

# poweroff

2.reboot

作用:立即重启系统。

本质:相当于 shutdown -r now 的快捷方式。

用法:

# reboot

3.halt

作用:停止 CPU 运行,但不一定切断电源。行为因系统而异,可能最终会调用 poweroff。

注意:这是一个较底层的命令,不建议普通用户优先使用,因为其行为可能不确定。

用法:

# halt

三、传统命令:init 和 telinit

init是传统的SysV init系统的核心命令,用于切换运行级别(runlevel)。在基于 systemd 的现代系统中,这些命令为了兼容性而被保留。

init 0或telinit 0: 切换到关机运行级别(关机)。

init 6或telinit 6: 切换到重启运行级别(重启)。

用法:

# init 0    //关机

# init 6    //重启

四、现代系统核心:systemctl 命令

在采用systemd的发行版中,系统服务的管理的核心是systemctl命令。上述所有命令最终大多会调用它来实现功能。

关机:

# systemctl poweroff

重启:

# systemctl reboot

挂起 (Suspend):

# systemctl suspend

休眠 (Hibernate):

# systemctl hibernate

理解 systemctl 对于深入管理现代 Linux 系统至关重要。

五、总结

命令

功能

安全性

适用场景

shutdown

安全关机、重启,可计划

极高

所有场景,尤其是服务器和多用户环境

poweroff

立即关机断电

高

个人桌面环境快速关机

reboot

立即重启

高

个人桌面环境快速重启

systemctl

系统控制(关机、重启等)

高

明确使用 systemd 的系统管理

init

切换运行级别(关机、重启)

中

兼容旧脚本或系统

halt

停止系统

低

不推荐普通用户使用

个人建议:

1.首选 shutdown:始终优先使用shutdown命令,特别是带有延迟和警告消息的形式,这是专业和负责任的做法。

2.使用 sudo:牢记在命令前添加sudo来获取必要的权限。因为这些操作需要有root权限才可以进行相关动作。

3.取消计划:如果误操作设置了定时关机,记得使用shutdown -c 取消。

4.服务器谨慎操作:在生产服务器上执行关机或重启前,务必通过who或w命令确认是否有其他用户在线,并提前广播通知。避免出现不可挽回的错误。

注意事项:

1.在强制关机(如拔电源、长按电源键)前,应尽一切可能使用上述命令正常关机,否则可能导致数据损坏或文件系统错误。

2.某些命令在不同的Linux发行版或初始化系统(systemd和init)中可能略有差异,但本文所述命令在主流发行版中通用。