有没有最快的方法关闭系统?

hum*_*ace 21 shutdown performance

或者是shutdown -h now它可以得到的最快的?

我寻找一些 syscall 或类似的东西,它们将允许跳过在关闭之前完成的大量工作(特别是关心正在运行的过程)。

充其量我想要一个与内核相关的解决方案,对init-middleware(如systemdupstart)一无所知。

与即直接杀死所有服务(如cups/apache/pulseaudio 等)相关的风险......我不在乎......

备注:解决方案应该是软件副。在设备上按下按钮不是我想要的。

gee*_*eya 31

它不会比使用系统请求 (SysRq) 功能然后立即触发reboot.

这是内核理解的组合键。

启用 SysRq:

echo 1 > /proc/sys/kernel/sysrq
Run Code Online (Sandbox Code Playgroud)

现在,将其发送到重新启动。

echo b > /proc/sysrq-trigger
Run Code Online (Sandbox Code Playgroud)

b - 立即重启系统,无需卸载或同步文件系统。

笔记:

虽然这是一个reboot它会表现得像电源已经被切断,这是不推荐的。

如果你想syncumount前手的文件系统,然后使用:

echo s > /proc/sysrq-trigger
echo u > /proc/sysrq-trigger
Run Code Online (Sandbox Code Playgroud)

或者,如果您只想关闭系统电源,则:

echo o > /proc/sysrq-trigger
Run Code Online (Sandbox Code Playgroud)

魔法组合键

还有一些由内核解释的组合键:

Alt+ SysRq / Print Screen+Command Key

命令键:

R- 从 X 控制键盘。
E- 向所有进程发送 SIGTERM,允许它们正常终止。
I- 向所有进程发送 SIGKILL,迫使它们立即终止。
S- 将数据刷新到磁盘。
U- 以只读方式重新挂载所有文件系统。
B- 重启。

引自Magic SysRq Key Wiki

神奇的 SysRq 键的一个常见用途是安全重新启动 Linux 计算机,否则该计算机已锁定。

  1. 按住AltSysRq(打印屏幕)键。
  2. 在按住这些键的同时,按顺序键入以下键,间隔几秒钟:REISUB
  3. 计算机应该重新启动。

记住这些的方法是:

- [R EBOOT é VEN˚F小号ystem ù tterlyroken”或简称为单词“”读向后。

参考

Magic SysRq Key Wiki
Fedora SysRq

  • 需要注意的是,一个干净的系统甚至可以在不到 2 秒的时间内关闭。当我在我的 Arch 机器上调用 `poweroff` 时,我什至看不到屏幕上打印的关机日志...... (11认同)

Sim*_*ter 8

讨厌的方法是shutdown -h -n now

请注意,这不会进行任何清理,因此文件系统可能会变得不一致、数据库损坏等,但它会非常快速地关闭系统。

  • 但是我不能强调这很可能会导致不良影响,因为它在很大程度上等同于拔掉插头。 (7认同)

Val*_*ity 5

一些发行版提供的poweroff命令比shutdown.

使用它:

poweroff -f
Run Code Online (Sandbox Code Playgroud)

将执行磁盘同步,然后关闭电源。这是一个很好的折衷方案,既可以提高速度,又可以执行最小程度的关闭,以确保文件系统不被损坏。