没有操作系统是完美的。 即使相对稳定,驱动程序和应用程序也可能存在问题。 Linux也不例外。 尽管比Windows更稳定(在许多情况下,并非全部!),但可能还需要重新启动Linux计算机。 这可能是因为某些东西不起作用。 或者,您可能通过SSH连接到远程计算机或服务器,并希望它重新启动或完全关闭。
但是你怎么做呢? 有几个命令可用于通过命令行关闭或重新启动(或重新启动)Linux计算机。
让我们依次研究它们,并研究应该如何以及何时使用这些命令。
1、关机
如果您已经使用了Linux机器,那么简单地关闭它的解决方案就是使用通过SSH发送的关机指令(如果您使用的是Windows PC,那么您有几个SSH工具可供选择)。这可以用来永久关闭计算机(直到您决定重新启动它)或重新启动。该命令的语法如下:
shutdown [option] [time] [message]
例如,要立即关闭计算机,您将使用:
shutdown -h now
这里,-h表示暂停,而现在明确表示该指令应立即执行。 可以使用不同的延迟。 例如,您可以使用+9代替,这将告诉计算机在9分钟内运行关机程序。
如果你想包含一条信息,这条信息将会显示给所有已登录的用户:
linuxidc@linuxidc:~/linuxidc.com$ shutdown -h +9 "服务器正在关闭,请保存您的工作并注销。"
Shutdown scheduledfor Sun 2019-04-28 10:37:30 CST, use 'shutdown -c' to cancel.
请记住,您可以找到这些命令的开关的完整列表,输入:
[command] --help
用-r重新启动
另一种选择是使用-r命令重新启动计算机。 这用于代替-h,因此要重新启动计算机或服务器,您可以使用:
linuxidc@linuxidc:~/linuxidc.com$ shutdown -h +3 "服务器将在在3分钟后重新启动, 请保存您的工作并注销。"
Shutdown scheduledfor Sun 2019-04-28 10:49:38 CST, use 'shutdown -c' to cancel.
可以通过输入shutdown -c命令取消任何计划的关闭或重新启动:
linuxidc@linuxidc:~/linuxidc.com$ shutdown -c
2、重新启动
由于shutdown命令具有重启选项,因此了解reboot命令有关闭选项也就不足为奇了。
标准的重启命令是:
reboot
这将提示您的计算机自动关闭,然后再重新打开。然而,如果你想关掉设备,那么-p开关将工作:
reboot -p
另一种选择是强制重启。如果应用程序或服务正在挂起,而您需要快速重启,这将非常有用:
reboot -f
这将强制重新启动Linux机器。
3、Halt
我们已经看到了上面的-h开关,但是halt可以单独用作命令。这将导致计算机立即关闭,用一个简单的四个字母单词:
halt
-f开关也可以用于暂停,但结果不一致,并且可能导致系统稳定性问题。
4、定时关机
您可能更喜欢poweroff命令的术语。这与halt完全相同,只是它需要两倍的输入时间。
但是,除了使用-f强制关机外,还可以使用-w开关将系统重启调用记录到/var/log/wtmp。这是一个潜在有用的调试工具,就像-verbose一样,它可以帮助解决关机问题。
poweroff --verbose
5、紧急选项:REISUB
当系统运行正常时,可以使用上面的所有命令。但如果它崩溃了呢?如果PC或服务器正在挂起,无法以合适的方式重新启动,该怎么办?
答案就是键盘组合。如果您已从Windows切换,您可能知道Ctrl + Alt + Del会显示一个菜单,其中包含Shutdown作为选项。如果保持更长时间,机器将自动关闭。同时,在Mac上,您只需按住电源按钮(也适用于Windows硬件的选项)。
在Linux中,键盘组合为Alt + Print Screen + B以重新启动。 但是,如果这不起作用,或者存在更复杂的问题,则可以使用最多六个键来更改组合。
这就是所谓的REISUB,是取以下词语的缩略语:
unRaw - 从X显示服务器控制键盘。
tErminate - 将终止信号SIGTERM发送到所有进程,以便正常终止。
kIll - 如上所述,但SIGKILL信号强制立即终止进程。
Sync - 将数据刷新到磁盘。
Unmount- 这会将所有文件系统重新装入只读状态。
reBoot - 正如您所期望的那样。
要使其起作用,您应按下Alt + Print Screen,然后按顺序按下R E I S U B键。 在每个按键之间留一两秒。 请注意,此方法通常不适用于具有ARM体系结构的计算机(例如Raspberry Pi)。
救命,我不小心关闭了我的Linux PC或服务器!
我们已经了解了如何取消关机或重启命令。然而,当一个重要的进程正在运行时,您很容易启动shutdown命令——尤其是在远程服务器上。解决这个问题的一种方法是安装molly-guard,它可以通过检查某些参数来覆盖关机。
例如,有一个脚本检查SSH会话(与FTP不同)。如果您发送重新启动、停止、关机或关机命令,molly-guard将要求您要关闭的主机的名称。
要使用它,请在终端中安装molly-guard:
linuxidc@linuxidc:~/linuxidc.com$ sudo apt-get install molly-guard
当molly-guard在后台运行时,它将检测诸如poweroff之类的命令,并报告已检测到SSH会话。 然后,您可以选择输入服务器的主机名以确认关闭,或者按Ctrl + C取消。 有用!
从命令行关闭Linux计算机的这五种方法特别有用,因为它们可以在计算机本身上使用,也可以通过远程SSH使用。 由于这些命令非常简洁,因此可以快速使用 - 这可能会导致意外重启! 幸运的是,molly-guard实用程序足以避免这种情况。
觉得不错请点赞支持,欢迎留言或进我的个人群855801563领取【架构资料专题目合集90期】、【BATJTMD大厂JAVA面试真题1000+】,本群专用于学习交流技术、分享面试机会,拒绝广告,我也会在群内不定期答题、探讨。