快捷搜索:  汽车  科技

linux可以通过哪几种命令重启系统:3个重启Linux系统的命令

linux可以通过哪几种命令重启系统:3个重启Linux系统的命令尽管如此,有两个概念是非常重要的。第一,在POSIX系统上很少需要重启。你的Linux及其可以运行几周甚至几月而不用重启。没有必要通过重启来刷新你的电脑,除非有软件安装器或者更新器提示你这样做。并且重启也不会造成损害,所以这一切都却决于你的需求。在继续向前了解前的一个关于重启的注意点。重启是操作系统上一个特殊的过程。即使在POSIX系统上,用于关机和重启的明星也有可能因为不同的系统初始化和命令设计而有所不同。学习如何通过不同的方法来重启Linux系统,从GUI深入到命令行。Linux具有的不是连续运行几个星期而是能连续运行几年而不用重启的能力。在一些生产中,Linux就是那样干的,这多亏与kpatch和kgraph。对于笔记本和桌面用户来说,那个尺度实际上是过于极端了。尽管不一定需要每日进行,但是每周重启一下你的及其还是有必要的。尽管是一个不需要经常重启的系统,Linux却提供了许多不同的

本文译自:3 commands to reboot Linux (plus 4 more ways to do it safely)

译者:开源视界

校对:OpenView

原文遵循:CC -BY-SA 4.0

学习如何通过不同的方法来重启Linux系统,从GUI深入到命令行。

linux可以通过哪几种命令重启系统:3个重启Linux系统的命令(1)

Linux具有的不是连续运行几个星期而是能连续运行几年而不用重启的能力。在一些生产中,Linux就是那样干的,这多亏与kpatchkgraph

对于笔记本和桌面用户来说,那个尺度实际上是过于极端了。尽管不一定需要每日进行,但是每周重启一下你的及其还是有必要的。尽管是一个不需要经常重启的系统,Linux却提供了许多不同的选择来让你设置什么时候进行重启。

理解选项

在继续向前了解前的一个关于重启的注意点。重启是操作系统上一个特殊的过程。即使在POSIX系统上,用于关机和重启的明星也有可能因为不同的系统初始化和命令设计而有所不同。

尽管如此,有两个概念是非常重要的。第一,在POSIX系统上很少需要重启。你的Linux及其可以运行几周甚至几月而不用重启。没有必要通过重启来刷新你的电脑,除非有软件安装器或者更新器提示你这样做。并且重启也不会造成损害,所以这一切都却决于你的需求。

其次,重启被设计为一个友好的进程,其保留有时间来供其它程序退出,文件保存,移除临时文件,更新文件系统日志等。任何时候,重启都应通过设计好的接口来进行,可以使GUI也可以是终端命令行。如果你强制你的计算机进行关机或者重启,你会有丢失未保存甚至最近保存的数据和破坏重要系统信息的风险。你应该只在别无选择的情况下强制关掉你的电脑。

点击按钮

第一个关闭你的Linux系统的方法是最常见的一个,对于桌面用户来说也是最只管的一个: 即GUI上的关机按钮。由于关机和重启是工作站上的常规任务,你可以在你的电脑的某个位置上找到该按钮(通常其同时具有重启和关机选项)。在GNOME桌面上,它在系统托盘上:

linux可以通过哪几种命令重启系统:3个重启Linux系统的命令(2)

同时它也在GNOME Activities 之中:

linux可以通过哪几种命令重启系统:3个重启Linux系统的命令(3)

在KDE桌面上,关机按钮也可以在Applications 菜单中找到:

linux可以通过哪几种命令重启系统:3个重启Linux系统的命令(4)

你也可以通过右键点击桌面然后选择Leave选项来访问电源控制,其会打开一个窗口,你看到的内容类似于下图:

linux可以通过哪几种命令重启系统:3个重启Linux系统的命令(5)

其它桌面可能提供了不同的方式,但是总的原理是一样的: 使用你的鼠标来定位到电源按钮,然后点击它。你可能需要在重启和关机之间进行选择,但是最后,结果几乎是一致的: 进程被良好地停止,数据被完好保存,而临时文件被成功移除,同时数据也会被同步到硬盘,最后系统关机。

物理按钮

大多数电脑都有物理电源按钮。如果你按了那个按钮,你的Linux桌面可能会显示出一个电源菜单为你提供了选项来进行重启或者关机。这个特性由ACPI技术提供。ACPI是一个与控制你的计算机状态的主板固件进行交流的子系统。

ACPI非常重要,但是它被限制到了特定范围。所以从用户的角度来说没有太多可配置的。通常,ACPI选项被叫做Power(电源)并被设置为一个合理的默认状态。如果你想改变该设置,你可以在你的系统设置中实现。

在GNOME上,打开系统托盘菜单,选择Activities,然后选择Settings。下一步,选择Power(电源)类,岂会打开下面的菜单:

linux可以通过哪几种命令重启系统:3个重启Linux系统的命令(6)

在Suspend & Power Button部分,选择你想要物理电源按钮对应的行为。

这个过程在不同桌面上是类似的。例如,在KDE上,System Settings中的Power Management面板包含有一个Buttong Event Handling选项。

linux可以通过哪几种命令重启系统:3个重启Linux系统的命令(7)

在你配置了按钮的引发的事件如何被处理后,按压你的计算机的物理电源按钮,然后做出对应的选择。取决于你的电脑厂商(或者零件厂商,如果电脑是你自己组装的),按压按钮可能是只需要轻敲,可能是需要稍长一点的按压延迟。因此,你可能需要进行一些测试。

不过要注意,通常一个非常长的按压会直接关掉你的电脑,并且没有提前警告(译注: 也就是强制关机了)。

推荐阅读(点击跳转)

如何方便地在Linux上查询硬件信息并生成报告

Linux下挂载使用Windows的NTFS分区

Linux使用图形界面连接WiFi

Linux中使用snap和flatpak来安装和管理应用程序

运行systemctl命令

如果你更多的实在终端中工作,而不是一个GUI桌面,你也许会更喜欢通过命令来重启。广泛地说,重启和关机是initsystem干的活,它是一个接收到电源信号后对应将电脑启动或者是关闭的程序。

在大多数现代Linux发行版上,systemd就是这个启动管理系统。因此重启和关机都可以通过systemd用户接口systemctl来实现。systemctl命令接收很多选项,包括halt选项(停止磁盘活动,但是不切断电源)、reboot(终止磁盘活动并同时向主板发送一个重置信号)和poweroff(终止磁盘活动,并切断电源)。这些命令通常斗鱼启动对应的target文件是等价的。

比如要触发重启:

$ sudo systemctl start reboot.target 运行shutdown命令

传统的UNIX,在systemd出现前,有一个特定的命令被用来停止系统。shutdown命令就是一个例子,其可以关闭你的及其,同时它也有几个选项可以实现额外控制。

这个命令需要一个以分钟为单位的时间参数,这样shutdown才知道什么时候执行关机操作。要立即重启,需要加上-r参数:

$ sudo shutdown -r now

立即关机:

$ sudo shutdown -P now

或者你也可以使用poweroff 命令:

$ poweroff

10分钟后重启:

$ sudo shutdown -r 10

shutdown命令是一个安全的关掉或者重启你的计算机的方法,其允许磁盘进行同步以及进程的结束。这个命令可以阻止最后的关机发生前5分钟内的新用户登入行为,这对于多用户系统来说及其有用。

在今天的许多系统上,shutdown命令实际上是对systemctl的一个合理的调用。

运行reboot命令

reboot命令,实际上就是shutdown -r now的一个快捷方式。从终端的角度来说,这是重启的最容易和快捷的方式:

$ sudo reboot

如果你的系统被阻止关机(可能是因为一个阻塞进程),你可以使用--flag参数来强制关机。然而,这个选项跳过了关闭进程等过程,因此对于运行中的进程来说可能会比较突然,因此该选项只应在shutdown命令阻止关机的时候来使用。

在许多系统上,reboot本质上也是对systemctl的一个合理的调用。

Init

在没有systemd的发行版上,有7个你的计算机可以理解的运行级别。不同的发行版可能为每个模式进行了特定的设置,但是通常来说,0会引发halt状态,而6会引发重启(这中间的数字指示的状态可能会是单用户模式,多用户模式,GUI命令行,和文本命令行)。

这些模式被定义在系统的/etc/inittab中。在使用systemd作为启动系统的发行版上,/etc/inittab文件要么缺失,要么仅仅是一个占位符。

telinit命令是你的启动系统的前端。如果你使用systemd,那么该命令就是一个具有合理选项的systemctl命令的别名。

通过发送运行级别0来关机:

$ sudo telinit 0

使用同样的方法进行重启:

$ sudo telinit 6

这个命令的安全程度完全取决于你的启动配置。大多数发行版会尝试避免你犯重大错误,因此会将运行级别映射到友好的命令上。

你可以通过阅读/etc/rc/d或者/etc/init.d下面的启动脚本或者/lib/systemd/system/下的systemd target来了解每个运行级所发生的事情。

使用蛮荒之力

目前为止,我们涵盖了所有的正确重启或这关掉你的Linux计算机的方法。为了使内容更完整,我在这里包含了额外的关掉Linux的方法,但是这些方法是不被推荐的。它们不是被设计来用于日常的重启或者关闭计算机。但是它们是完成这些任务的有效的方式。

如果你尝试这些方法,请尽量在虚拟机中进行尝试。否则,最好只在紧急状况下使用它们。

Proc

比init system更底层的便是/proc文件系统,它是一个发生在你的计算机上的几乎所有时间的一个虚拟表示。例如,你可以查看你的CPUs,并且看起来它们就像文本文件一样(cat /proc/cpuinfo),也可以查看电源剩余量,或者重启你的系统。(译注: Linux万物皆文件)。

一个很少失败的方法就是使用echo来想/proc中手动插入信息。首先,确保你的Sysrq系统是被启用的:

$ sudo echo 1 > /proc/sys/kernel/sysrq

为了重启,要么Alt Sysrq B 或者输入:

$ sudo echo b > /proc/sysrq-trigger

这个方式不是一个重启你的机器的理性方法,但是它能够完成工作。

Sysctl

运行时内核参数可以通过sysctl进行管理。内核参数有非常之多,你可以通过sysctl --all来查看它们。大多数参数对于你来说是没有意义的,这里你需要查找的是kernel.panic。

你可以使用--value选项询问内核参数:

$ sudo sysctl --value kernel.panic

如果你得到的返回值是0,那么你运行的内核没有进行内核灾难重启的特殊设置,至少默认上是这样。这个情形是很典型的,因为在灾难性的系统崩溃发生时立即重启系统对于诊断崩溃原因是没有好处的。

你可以试验性地激活该特性(如果你打算照做,请尽量在虚拟机中而不是物理机进行操作):

$ sudo sysctl kernel.reboot=1

现在,如果你的电脑出现了kernel panic,它就会立即重启,而不是等待问题诊断。你可以通过使用sysrq模拟灾难性崩溃来对其进行测试。首先,确保sysrq被启用:

$ sudo echo 1 > /proc/sys/kernel/sysrq

然后模拟kernel panic:

$ sudo echo c > /proc/sysrq-trigger

你的计算机会立即重启。

负责任地重启

知道了所有的这些选择并不意味着你应该全部使用它们。仔细思考你在做什么,以及你选择的命令会做什么。你不会想要在不具考量的情况下意外破坏你的系统。然而知道了有这么多选择意味着你对大多数情形都准备好了如何处理。

我遗漏掉了你最喜欢的重启或者关闭系统的方法吗?如果有,请在评论中列出。

推荐阅读(点击跳转)

查询Linux发行版名字、版本和内核信息

如何迅速方便地在Ubuntu 18.04中配置IP地址

如何方便地在Linux上查询硬件信息并生成报告

如何机智地在Linux上知道你最常用到的命令

"隐写术":在Linux上实现将文件隐藏到图像中(上)

"隐写术":在Linux上实现将文件隐藏到图像中(下)

如何轻松地在Linux上使用gocryptfs工具对文件进行加密

喜欢使用Linux办公、学习、hack的朋友们可以点击关注小编,小编将竭力提供更多内容给大家交流~

猜您喜欢: