良许 | 听说,有个同事因为关闭服务器被打进 ICU ……
<center><b>提问:你是如何关闭电脑的?</b><br></center><center>普通青年</center>
<p><img src="https://img2018.cnblogs.com/blog/1218435/201909/1218435-20190909132136758-1520876364.gif"></p>
<center>文艺青年</center>
<p><img src="https://img2018.cnblogs.com/blog/1218435/201909/1218435-20190909132147331-843230836.gif"></p>
<center>二逼青年</center>
<p><img src="https://img2018.cnblogs.com/blog/1218435/201909/1218435-20190909132154718-1268326200.gif"></p>
<p>你是属于哪一种呢?</p>
<p>实话说,</p>
<p><strong>这三种良许都干过~</strong></p>
<p>还好我没有对服务器这么做,</p>
<p>否则……</p>
<p>分分钟被打进 ICU ……</p>
<p><img src="https://img2018.cnblogs.com/blog/1218435/201909/1218435-20190909132156096-1317246573.png"></p>
<h4 id="1-关机命令知多少">1. 关机命令知多少</h4>
<p>对于 Linux 电脑,正常情况下你是如何关机的?想必大家应该都是类似这样操作:</p>
<p><img src="https://img2018.cnblogs.com/blog/1218435/201909/1218435-20190909132205471-1384829180.gif"></p>
<p>但是,对于很多服务器,它们并没有 GUI 界面,或者很多服务器我们是通过 SSH 来远程操作,那么我们只能通过命令行来进行关机。Linux 和类Unix 系统(如macOS)都为大家提供了几个命令来从命令行关闭或重启系统,一般有下几个命令:</p>
<ul>
<li>shutdown</li>
<li>halt</li>
<li>reboot</li>
<li>poweroff</li>
</ul>
<p>这些命令从汉语字面意义来看,多少有些相似,可能会让人觉得困惑。但是如果使用一些相应的选项,所有这些命令都可以执行关机、重启和挂起等操作。但实际上,你用 man 命令来查看这几个命令的用法,出来的结果都是一样的,如下图所示。</p>
<p><img src="https://img2018.cnblogs.com/blog/1218435/201909/1218435-20190909132205981-1943089552.png"></p>
<p>为什么会是这样的情况呢?我们要从这几个命令的渊源说起。</p>
<h4 id="2-深挖关机命令历史">2. 深挖关机命令历史</h4>
<p>为什么那几个关机命令的 man page 都一样?其实原因很简单,就是因为 Systemd 系统取代了古老的 system v init 系统。在 Linux 世界中,Fedora 在 2011 年开始使用 init 引导程序,从那以后许多发行版开始纷纷效仿。</p>
<p>但是,Debian 和 Ubuntu 于 2015 年开始切换到 Systemd 引导程序。</p>
<p>在基于 Systemd 的发行版上,shutdown、reboot、halt 和 poweroff 命令实际上都是指向 systemctl 命令的快捷方式。为了保持与基于 system v init 的发行版的兼容性,Systemd 系统保留了这些命令。</p>
<h4 id="3-关机命令使用详解">3. 关机命令使用详解</h4>
<p>一台服务器通常会有多人一起使用,所以如果需要关闭或重启的话,我们需要提前做好计划,否则擅自关机的话会分分钟被同事打进 ICU 。</p>
<p><img src="https://img2018.cnblogs.com/blog/1218435/201909/1218435-20190909132206263-1109127694.jpg"></p>
<p><strong>接下来,我们来重点讲解 shutdown 命令的用法。</strong></p>
<p>所以,为了避免被揍,我们需要在关机之前告知所有已经登录的用户,提醒他们做好保存的工作。比如,我们打算从现在开始 15 分钟后关闭系统,需要键入如下命令:</p>
<pre><code>$ shutdown +15 Shutting down in 15 minutes!
</code></pre>
<p><img src="https://img2018.cnblogs.com/blog/1218435/201909/1218435-20190909132206753-477197142.png"></p>
<p>其中,<code>+15</code> 表示从现在起 15 分钟后,这里 <code>+</code> 号是可选的。而在 +15 之后跟的那串信息就是会通知到所有已经登录系统的用户的信息。</p>
<p>所以,当以上命令执行之后,所有已经登录系统的用户都会收到 <code>Shutting down in 15 minutes!</code> 这条信息,并且 15 分钟后系统将关闭。</p>
<p><img src="https://img2018.cnblogs.com/blog/1218435/201909/1218435-20190909132207114-465760015.png"></p>
<p>如果我们要取消关闭,可以使用 <code>-c</code> 选项。</p>
<pre><code>$ shutdown -c
</code></pre>
<p><img src="https://img2018.cnblogs.com/blog/1218435/201909/1218435-20190909132209192-522145609.png"></p>
<p>同样地,所有已登录的用户都会收到一条 <code>The system shutdown has been cancelled</code> 的通知。</p>
<p><img src="https://img2018.cnblogs.com/blog/1218435/201909/1218435-20190909132210107-258589221.png"></p>
<p>如果我们在 shutdown 命令之后不跟任何参数,那么默认就是在 1 分钟后关机。同时,这样操作不会通知在线的用户。所以,这样做很危险,一定要慎重。</p>
<pre><code>$ shutdown
</code></pre>
<p><img src="https://img2018.cnblogs.com/blog/1218435/201909/1218435-20190909132210362-588096667.png"></p>
<p>如果我们甚至连一分钟都等不了,那么我们可以在 shutdown 后面跟上 now,代表关闭立即生效。使用 now 就等同于使用了 <code>+0</code> 参数。</p>
<p><img src="https://img2018.cnblogs.com/blog/1218435/201909/1218435-20190909132210822-1887817729.png"></p>
<p>另外,时间参数也可以是我们期望关机的具体时间,例如 23:00 。但它必须遵循 <code>HH:MM</code> 的格式,并且必须是 24 小时式。执行这条命令后,在系统关闭的前 5 分钟,新的登录将被阻止。</p>
<p><img src="https://img2018.cnblogs.com/blog/1218435/201909/1218435-20190909132211406-1134132705.png"></p>
<p>默认情况下 shutdown 命令会使计算机进入挂起状态,然后进入关机状态。但是,我们可以使用其它选项来改变这个默认操作:</p>
<ul>
<li><code>-H</code> (停止),将我们的计算机进入挂起状态,但不会要求硬件断电。</li>
<li><code>-P</code> (关机)是默认操作,将计算机切换到挂起状态,然后关闭电源。</li>
<li><code>-r</code> (重新启动),将我们的计算机进入挂起状态,然后重新启动。</li>
<li><code>-h</code> (挂起并关机)与 <code>-P</code> 一样,如果同时使用-h和-H,则优先使用-H选项</li>
<li><code>-c</code> (取消)该选项将取消任何定时关机,挂起或重启。</li>
</ul>
<p>比如下面这个重启的例子:</p>
<pre><code>$ shutdown -r 08:20 System rebooting at 08:20
</code></pre>
<p><img src="https://img2018.cnblogs.com/blog/1218435/201909/1218435-20190909132211662-610964233.png"></p>
<p>-----------------</p>
<p>我是良许,<strong>世界500强</strong>外企 Linux 开发工程师,专业生产 Linux 干货。欢迎关注我的公众号「<strong>良许Linux</strong>」,回复「<strong>1024</strong>」获取最新最全的技术资料,回复「<strong>入群</strong>」进入高手如云技术交流群。</p>
<p><img src="https://img2018.cnblogs.com/blog/1218435/201909/1218435-20190909132213249-687436724.png"></p><br><br>
来源:https://www.cnblogs.com/yychuyu/p/11491179.html
頁:
[1]