下面介绍在 Linux 操作系统中重启和关闭相关的命令:shutdown、reboot、init、halt、poweroff、systemctl,你可以根据需要来选择适合的 Linux 命令关闭或重新启动系统。其中 shutdown、halt、poweroff、reboot 命令是用来停机、重启或切断电源, systemctl 命令管理 systemd,是 Linux 系统和服务器的管理程序。 使用 shutdown 命令关闭和重启 Linux 系统 shutdown 命令用于断电或重启本地和远程的 Linux 机器。它为高效完成作业提供多个选项。如果使用了时间参数,系统关闭的 5 分钟之前,会创建 /run/nologin 文件,以确保后续的登录会被拒绝。 通用语法如下: # shutdown [OPTION] [TIME] [MESSAGE] 运行下面的命令来立即关闭 Linux 机器。它会立刻杀死所有进程,并关闭系统: # shutdown -h now -h:如果不特指 -halt 选项,这等价于 -poweroff 选项。 另外我们可以使用带有 -halt 选项的 shutdown 命令来立即关闭设备: # shutdown --halt now 或者: # shutdown -H now -H, --halt:停止设备运行。 另外我们可以使用带有 poweroff 选项的 shutdown 命令来立即关闭设备: # shutdown --poweroff now 或者: # shutdown -P now -P, --poweroff:切断电源(默认)。 如果您没有使用时间选项运行下面的命令,它将会在一分钟后执行给出的命令: # shutdown -h Shutdown scheduled for THU 2018-11-01 06:42:31 EDT, use 'shutdown -c' to cancel. 其他的登录用户都能在中断中看到如下的广播消息: Broadcast message from root@2daygeek.com (THU 2018-11-01 06:41:31 EDT): The system is going down for power-off at THU 2018-11-01 06:42:31 EDT! 对于使用了 -halt 选项: # shutdown -H Shutdown scheduled for THU 2018-11-01 06:37:53 EDT, use 'shutdown -c' to cancel. 对于使用了 -poweroff 选项: # shutdown -P Shutdown scheduled for THU 2018-11-01 06:40:07 EDT, use 'shutdown -c' to cancel. 可以在您的终端上敲击 shutdown -c 选项取消操作: # shutdown -c 其他的登录用户都能在中断中看到如下的广播消息: Broadcast message from root@vps.2daygeek.com (THU 2018-11-01 06:41:35 EDT): The system shutdown has been cancelled at THU 2018-11-01 06:42:35 EDT! 添加时间参数,如果你想在 N 秒之后执行关闭或重启操作。这里,您可以为所有登录用户添加自定义广播消息。例如,我们将在五分钟后重启设备: # shutdown -r +5 "To activate the latest Kernel" Shutdown scheduled for THU 2018-11-01 07:13:16 EDT, use 'shutdown -c' to cancel. 运行下面的命令立即重启 Linux 机器。它会立即杀死所有进程并且重新启动系统: # shutdown -r now -r, --reboot: 重启设备。 通过 reboot 命令关闭和重启 Linux 系统 reboot 命令用于关闭和重启本地或远程设备。reboot 命令拥有两个实用的选项。 它能够优雅的关闭和重启设备(就好像在系统菜单中惦记重启选项一样简单)。 执行不带任何参数的 reboot 命令来重启 Linux 机器: # reboot 执行带 -p 参数的 reboot 命令来关闭 Linux 机器电源: # reboot -p -p, --poweroff:调用 halt 或 poweroff 命令,切断设备电源。 执行带 -f 参数的 reboot 命令来强制重启 Linux 设备(这类似按压机器上的电源键): # reboot -f -f, --force:立刻强制中断,切断电源或重启。 通过 init 命令关闭和重启 Linux 系统 init(“initialization” 的简写)是系统启动的第一个进程。 它将会检查 /etc/inittab 文件并决定 linux 运行级别。同时,允许用户在 Linux 设备上执行关机或重启操作. 这里存在从 0 到 6 的七个运行等级。 执行以下 init 命令关闭系统: # init 0 0: 停机 – 关闭系统。 运行下面的 init 命令重启设备: # init 6 6:重启 – 重启设备。 通过 halt 命令关闭和重启 Linux 系统 halt 命令用来切断电源或关闭远程 Linux 机器或本地主机。中断所有进程并关闭 cpu: # halt 通过 poweroff 命令关闭和重启 Linux 系统 poweroff 命令用来切断电源或关闭远程 Linux 机器或本地主机。poweroff 很像 halt,但是它可以关闭设备硬件(灯和其他 PC 上的其它东西)。它会给主板发送 ACPI 指令,然后信号发送到电源,切断电源。 # poweroff 通过 systemctl 命令关闭和重启 Linux 系统 systemd 是一款适用于所有主流 Linux 发型版的全新 init 系统和系统管理器,而不是传统的 SysV init 系统。 systemd 兼容与 SysV 和 LSB 初始化脚本。它能够替代 SysV init 系统。systemd 是内核启动的第一个进程,并持有序号为 1 的进程 PID。 它是一切进程的父进程,Fedora 15 是第一个适配安装 systemd (替代了 upstart)的发行版。 systemctl 是命令行下管理 systemd 守护进程和服务的主要工具(如 start、restart、stop、enable、disable、reload & status)。 systemd 使用 .service 文件而不是 SysV init 使用的 bash 脚本。 systemd 将所有守护进程归与自身的 Linux cgroups 用户组下,您可以浏览 /cgroup/systemd 文件查看该系统层次等级: # systemctl halt # systemctl poweroff # systemctl reboot # systemctl suspend # systemctl hibernate 结语 shutdown、reboot、init、halt、poweroff、systemctl 命令可以达到重启和关闭 Linux 系统目的,都是在命令行下操作。如果你对命令行比较熟悉,那这样做是最便捷的,也是最安全的。同时重启和关闭系统的命令不多,你可以选择其中拿手的来完成任务。
|