专栏首页Linux 杂货铺重启或关闭 Linux 系统的 6 个终端命令

重启或关闭 Linux 系统的 6 个终端命令

重启或关闭 Linux 系统是诸多风险操作之一,务必慎之又慎。 点击查看我的博客原文

Linux 系统在重启或关闭之前,会通知所有已登录的用户和进程。如果在命令中加入了时间参数,系统还将拒绝新的用户登入请求

推荐阅读查看系统/服务器正常运行时间的 11 个方法 | 2daygeek Tuptime 一款为 Linux 系统保存历史记录、统计运行时间工具 | 2daygeek

下面将依次介绍以下命令

  • shutdownhaltpoweroffreboot:用于休眠、重启或关机
  • initinitialization 的简称,是系统启动的第一个进程
  • systemctlsystemd 是 Linux 系统和服务器的管理程序

shutdown 命令

shutdown命令用于重启或关闭本地/远程的 Linux 设备,并提供了多个选项。如果定义了时间参数,则系统会在关机的 5 分钟前创建/run/nologin文件,以确保后续的登录请求会被拒绝

通用语法如下:

> shutdown [OPTION] [TIME] [MESSAGE]

运行以下命令则会立即关闭 Linux 设备-h now表示立刻杀死所有进程,并关闭系统:

-h:如果不特指-halt选项,则等价于-poweroff选项

> shutdown -h now

另外我们可以使用带有-halt选项的shutdown命令立即关闭设备:

-H--halt:停止设备运行

> shutdown --halt now 
# 或者
> shutdown -H now

还可以使用带有poweroff选项的shutdown命令:

-P--poweroff:切断电源(默认)

> shutdown --poweroff now
# 或者
> shutdown -P now

如果没有使用时间选项运行以下命令,则命令会在一分钟之后执行:

[root@centos-1~] > shutdown -h
Shutdown scheduled for Mon 2018-10-08 06:42:31 EDT, use 'shutdown -c' to cancel.

[root@centos-2~] >
Broadcast message from root@centos-1 (Mon 2018-10-08 06:41:31 EDT):

The system is going down for power-off at Mon 2018-10-08 06:42:31 EDT!

若要取消关机计划,则可使用shutdown -c

[root@centos-1~] > shutdown -c
Broadcast message from root@centos-1 (Mon 2018-10-08 06:39:09 EDT):

The system shutdown has been cancelled at Mon 2018-10-08 06:40:09 EDT!

同样的,其他登录用户都能在中断中看到如下的广播消息

[root@centos-2~] >
Broadcast message from root@centos-1 (Mon 2018-10-08 06:41:35 EDT):

The system shutdown has been cancelled at Mon 2018-10-08 06:42:35 EDT!

如果想在指定时间(例如N秒)后执行重启或关机操作,则可添加时间参数,并可以为所有登录用户添加自定义广播消息。例如,我们将在五分钟后重启设备:

[root@centos-1~] > shutdown -r +5 "To activate the latest Kernel"
Shutdown scheduled for Mon 2018-10-08 07:13:16 EDT, use 'shutdown -c' to cancel.

[root@centos-2~] >
Broadcast message from root@vps.2daygeek.com (Mon 2018-10-08 07:08:16 EDT):

To activate the latest Kernel
The system is going down for reboot at Mon 2018-10-08 07:13:16 EDT!

运行以下命令则会立即杀死所有进程并重启系统

> shutdown -r now

reboot 命令

reboot命令同样可以重启或关闭本地/远程的 Linux 设备

执行不带任何参数reboot命令以重启 Linux 设备

> reboot

执行-p参数reboot命令以关闭 Linux 设备电源

-p--poweroff:调用haltpoweroff命令,切断设备电源

> reboot -p

执行-f参数reboot命令以强制重启 Linux 设备(类似按压机器上的电源键):

-f--force:立刻强制终端,切断电源或重启

> reboot -f

init 命令

init进程是 Linux 系统启动的第一个进程

它会检查/etc/inittab文件并决定 Linux 的运行级别。同时,允许用户在 Linux 设备上执行关机或重启操作。级别范围为0~6,共七个运行等级。

推荐阅读如何检查 Linux 上所有运行的服务 | 2daygeek

执行以下命令关闭系统

0:停机 - 关闭系统

> init 0

执行以下命令重启设备

6:重启 - 重启设备

> init 6

halt 命令

halt命令用来切断电源关闭本地/远程 Linux 设备。它会中断所有进程关闭 CPU

> halt

poweroff 命令

poweroff命令同样用来切断电源关闭本地/远程 Linux 设备poweroff很像halt,但不同的是它可以关闭设备硬件poweroff会给主板发送 ACPI 指令,主板再将信号发送给电源并切断电源:

> poweroff

systemctl 命令

systemd 是一款适用于所有主流 Linux 发行版全新 init 系统系统管理器,它是内核启动的第一个进程,并持有序号为1的进程 PID

推荐阅读chkservice – 一款终端下系统单元管理工具 | 2daygeek

systemd一切进程的父进程Fedora 15 是第一个适配安装 systemd(替代 upstart)的 Linux 发行版。

systemctl是命令行下管理 systemd 守护进程和服务的主要工具。常用命令包括:startrestartstopenabledisablereloadstatus

systemd 使用.service文件而不是 SysV init 使用的 bash 脚本。systemd 将所有守护进程归于自身的 Linux cgroups 用户组下,可以浏览/cgroup/systemd文件查看该系统的层次等级。

> systemctl halt
> systemctl poweroff
> systemctl reboot
> systemctl suspend
> systemctl hibernate

参考文章

重启和关闭 Linux 系统的 6 个终端命令 | Linux 中国

6 Commands To Shutdown And Reboot The Linux System From Terminal | 2daygeek

查看系统/服务器正常运行时间的 11 个方法 | 2daygeek

Tuptime 一款为 Linux 系统保存历史记录、统计运行时间工具 | 2daygeek

如何检查 Linux 上所有运行的服务 | 2daygeek

chkservice – 一款终端下系统单元管理工具 | 2daygeek

原文链接:https://linux.cn/article-10177-1.html

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 搭建高可用WordPress网站托管

    本指南将使用双Linode集群配置高可用的WordPress站点,数据库采用MySQL双主复制(Master-Master replication),并使用Li...

    苏易北
  • 使用Apache Guacamole连接虚拟云桌面

    Apache Guacamole是一款HTML5应用程序,可通过RDP,VNC和其他协议访问远程桌面。您可以创建一个虚拟云桌面,用户通过Web浏览器即可访问。本...

    苏易北
  • 如何使用UFW配置防火墙

    UFW(Uncomplicated FireWall)是Arch Linux、Debian或Ubuntu中管理防火墙规则的前端工具。UFW通常在命令行环境下使用...

    苏易北
  • 如何才能学好Linux?

    为何要学习 Linux? 这个问题可能困扰着很多 Linux 初学者和爱好者,其实我也说不上来为何要学习 Linux,可能最实在的理由就是----Linux 相...

    程序员互动联盟
  • 谷歌 Fuchsia 操作系统将支持运行 Linux 应用程序

    近日,谷歌已经为其新兴开源的 Fuchsia OS 添加了一个 Guest App,以使 Linux 应用程序能够在 Fuchsia 中作为虚拟机(VM)运行。...

    用户6543014
  • JSP上传文件与导出Excel表

    我们可以通过Apache的fileupload组件来实现jsp上传文件,这样就不需要自己去写具体的实现了,首先需要配置如下依赖:

    端碗吹水
  • 【Spark篇】---Spark中Action算子

    Action类算子也是一类算子(函数)叫做行动算子,如foreach,collect,count等。Transformations类算子是延迟执行,Action...

    LhWorld哥陪你聊算法
  • Linux运维工程师必学必备的8项IT技能

    成长一名Linux工程师之后,才知道一路走来,背后的心酸。非常感谢支持我的同伴与老师,是你们鼓励我,坚持到底,才在这个行业立足。 如果你在学习Linux,那么强...

    小小科
  • IronPython整合Windows PowerShell

          Windows PowerShell 是微软为 Windows 环境所开发的 shell 及脚本语言技术,这项全新的技术提供了丰富的控制与自动化的系...

    张善友
  • 【翻译】200行代码讲透RUST FUTURES (7)

    我们将用一个伪reactor和一个简单的执行器创建我们自己的Futures,它允许你在浏览器中编辑和运行代码

    MikeLoveRust

扫码关注云+社区

领取腾讯云代金券