菜鸟科技网

Linux安全关机命令有哪些?

最核心、最推荐的命令

systemd 是目前绝大多数现代 Linux 发行版(如 Ubuntu 16.04+, CentOS 7+, Debian 8+, Fedora, Arch Linux 等)的默认系统管理器,推荐使用 systemctl 命令。

Linux安全关机命令有哪些?-图1
(图片来源网络,侵删)

systemctl poweroff

这是在 systemd 系统上最推荐的关机命令。

  • 作用:它会给所有正在运行的程序发送一个 SIGTERM 信号,请求它们优雅地退出,然后等待一段时间后,再发送一个 SIGKILL 信号强制终止剩余进程,系统会安全地卸载所有文件系统并切断电源。
  • 优点:这是最符合 systemd 设计理念的方式,能确保关机过程最安全、最可控。
  • 示例
    sudo systemctl poweroff

    通常需要 sudo 权限,因为关机是一个需要管理员权限的操作。


传统且通用的命令

这些命令在几乎所有 Linux/Unix 系统上都可用,包括那些不使用 systemd 的旧系统。

shutdown

这是一个非常强大和灵活的传统命令,特别适合计划内的关机。

Linux安全关机命令有哪些?-图2
(图片来源网络,侵删)
  • 作用:它会通知所有已登录的用户系统即将关闭,然后按照指定的时间执行关机或重启操作,这给了用户保存工作并退出的时间。
  • 常用选项
    • 立即关机
      sudo shutdown -h now
      • -h:halt(停机),即关机。
      • now:立即执行。
    • 定时关机(10分钟后关机):
      sudo shutdown +10

      系统会显示 "The system is going down for poweroff at HH:MM" 之类的消息。

    • 定时关机并指定消息(5分钟后关机,并通知大家“系统维护”):
      sudo shutdown +5 "系统维护,请保存工作并退出"
    • 取消一个已计划的关机
      sudo shutdown -c
  • 优点:非常安全,因为它会提前通知用户,防止他们丢失未保存的工作。

halt

这个命令的作用是“停止”系统,但不一定切断电源

  • 作用:停止所有 CPU 活动,停止内存写入,然后停止系统,在支持 ACPI 的现代系统上,halt 通常等同于关机并断电,但在一些非常老的系统上,它可能只会停在 "System halted" 界面,需要手动按电源键。
  • 示例
    sudo halt
  • 注意:在现代 Linux 系统上,halt 命令通常会被 systemd 重定向到 poweroff 的行为,即最终会断电。

poweroff

这个命令的意图非常明确:关闭系统并切断电源

  • 作用:与 halt 类似,但明确表示要执行关机操作,在 systemd 出现之前,它和 halt 的细微差别在于是否强制切断电源。
  • 示例
    sudo poweroff
  • 注意:在 systemd 系统中,poweroff 命令通常也会被 systemctl poweroff 所替代或调用。

其他相关命令

init

这是一个非常古老的命令,用于切换系统的运行级别(Runlevel)。

  • 作用:通过切换到运行级别 0(halt)或 6(reboot)来关机或重启。
  • 示例
    sudo init 0
  • 注意:这个命令在现代 systemd 系统上已被弃用,虽然它可能仍然可以工作,但你应该使用 systemctl,它主要存在于为了兼容旧脚本而保留的功能中。

总结与对比

命令 推荐度 主要用途 备注
systemctl poweroff ⭐⭐⭐⭐⭐ 现代 Linux 系统的首选 最符合 systemd 设计,安全可靠。
shutdown -h now ⭐⭐⭐⭐ 传统且非常安全 特别适合计划关机,会提前通知用户。
sudo poweroff ⭐⭐⭐ 简单直接的关机 在大多数系统上有效,但 systemctl 更现代。
sudo halt ⭐⭐ 停止系统 在现代系统上行为通常等同于 poweroff
sudo init 0 已弃用 仅用于兼容旧系统,不推荐在新系统上使用。

特殊情况:无法正常关机怎么办?

如果系统卡住,无法通过上述命令正常关机,你可以采取以下措施(按顺序尝试,谨慎使用):

  1. 强制重启(万能钥匙): 这是最后的选择,相当于 Windows 的“重启”按钮,它会强制重启,可能导致未保存的数据丢失或文件系统损坏。

    sudo systemctl reboot
    # 或者传统命令
    sudo shutdown -r now
  2. 强制关机(终极手段): 这等同于直接按电源按钮长按 5 秒。这是最危险的操作,仅在系统完全无响应时使用。

    • 通过命令模拟
      sudo systemctl --force reboot
    • 通过按键:长按物理电源按钮约 5 秒,直到电脑断电并重启。

最佳实践建议

  • 对于日常使用:直接使用 sudo systemctl poweroff
  • 对于服务器或需要提前通知他人的场景:使用 shutdown 命令,sudo shutdown +10 "The server will be shut down for maintenance in 10 minutes."
  • 永远避免:直接按电源键,除非系统已经完全死机。
分享:
扫描分享到社交APP
上一篇
下一篇