<center><b>提问:你是如何关闭电脑的?</b><br/></center>服务器
<center>普通青年</center>命令行
<center>文艺青年</center>code
<center>二逼青年</center>blog
你是属于哪种呢?开发
实话说,it
这三种良许都干过~登录
还好我没有对服务器这么作,兼容性
不然……硬件
分分钟被打进 ICU ……程序
对于 Linux 电脑,正常状况下你是如何关机的?想必你们应该都是相似这样操做:
可是,对于不少服务器,它们并无 GUI 界面,或者不少服务器咱们是经过 SSH 来远程操做,那么咱们只能经过命令行来进行关机。Linux 和类Unix 系统(如macOS)都为你们提供了几个命令来从命令行关闭或重启系统,通常有下几个命令:
这些命令从汉语字面意义来看,多少有些类似,可能会让人以为困惑。可是若是使用一些相应的选项,全部这些命令均可以执行关机、重启和挂起等操做。但实际上,你用 man 命令来查看这几个命令的用法,出来的结果都是同样的,以下图所示。
为何会是这样的状况呢?咱们要从这几个命令的渊源提及。
为何那几个关机命令的 man page 都同样?其实缘由很简单,就是由于 Systemd 系统取代了古老的 system v init 系统。在 Linux 世界中,Fedora 在 2011 年开始使用 init 引导程序,从那之后许多发行版开始纷纷效仿。
可是,Debian 和 Ubuntu 于 2015 年开始切换到 Systemd 引导程序。
在基于 Systemd 的发行版上,shutdown、reboot、halt 和 poweroff 命令实际上都是指向 systemctl 命令的快捷方式。为了保持与基于 system v init 的发行版的兼容性,Systemd 系统保留了这些命令。
一台服务器一般会有多人一块儿使用,因此若是须要关闭或重启的话,咱们须要提早作好计划,不然擅自关机的话会分分钟被同事打进 ICU 。
接下来,咱们来重点讲解 shutdown 命令的用法。
因此,为了不被揍,咱们须要在关机以前告知全部已经登陆的用户,提醒他们作好保存的工做。好比,咱们打算从如今开始 15 分钟后关闭系统,须要键入以下命令:
$ shutdown +15 Shutting down in 15 minutes!
其中,+15
表示从如今起 15 分钟后,这里 +
号是可选的。而在 +15 以后跟的那串信息就是会通知到全部已经登陆系统的用户的信息。
因此,当以上命令执行以后,全部已经登陆系统的用户都会收到 Shutting down in 15 minutes!
这条信息,而且 15 分钟后系统将关闭。
若是咱们要取消关闭,可使用 -c
选项。
$ shutdown -c
一样地,全部已登陆的用户都会收到一条 The system shutdown has been cancelled
的通知。
若是咱们在 shutdown 命令以后不跟任何参数,那么默认就是在 1 分钟后关机。同时,这样操做不会通知在线的用户。因此,这样作很危险,必定要慎重。
$ shutdown
若是咱们甚至连一分钟都等不了,那么咱们能够在 shutdown 后面跟上 now,表明关闭当即生效。使用 now 就等同于使用了 +0
参数。
另外,时间参数也能够是咱们指望关机的具体时间,例如 23:00 。但它必须遵循 HH:MM
的格式,而且必须是 24 小时式。执行这条命令后,在系统关闭的前 5 分钟,新的登陆将被阻止。
默认状况下 shutdown 命令会使计算机进入挂起状态,而后进入关机状态。可是,咱们可使用其它选项来改变这个默认操做:
-H
(中止),将咱们的计算机进入挂起状态,但不会要求硬件断电。-P
(关机)是默认操做,将计算机切换到挂起状态,而后关闭电源。-r
(从新启动),将咱们的计算机进入挂起状态,而后从新启动。-h
(挂起并关机)与 -P
同样,若是同时使用-h和-H,则优先使用-H选项-c
(取消)该选项将取消任何定时关机,挂起或重启。好比下面这个重启的例子:
$ shutdown -r 08:20 System rebooting at 08:20
-----------------
我是良许,世界500强外企 Linux 开发工程师,专业生产 Linux 干货。欢迎关注个人公众号「良许Linux」,回复「1024」获取最新最全的技术资料,回复「入群」进入高手如云技术交流群。