Linux 有 Ctrl+Alt+Del 等价物吗?

gut*_*cko 24 linux ctrl-alt-delete

确实的Linux有一个CTRL+ ALT+DEL相同呢?

Tha*_*ama 23

X 可以使用Ctrl+ Alt+杀死BackSpace,如果你点击Ctrl+ Alt+ F1(或 F2 到 6),你会被放到一个虚拟控制台,你可以在那里输入命令来杀死坏应用。要切换回 GUI,请点击Ctrl+ Alt+ F7


Kev*_*vin 10

GNU / Linux下[至少基于该那些SystemV的init风格],行为ctrl+ alt+del依赖的配置文件/etc/inittab,你应该能够读取一行:

<id>::ctrlaltdel:/sbin/shutdown -t3 -r now
Run Code Online (Sandbox Code Playgroud)

(来自 ArchLinux 发行版的示例)这意味着系统将在收到组合键时关闭。但是您可能想做其他事情,例如*

<id>::ctrlaltdel:/usb/bin/sudo make me a sandwich
Run Code Online (Sandbox Code Playgroud)

(这更有用:)

  • make: *** 没有规则可以制作目标“我”。停止。 (5认同)
  • 找不到@Eroen `/usb/bin/sudo` 文件。 (2认同)

Tho*_*mas 8

那么你可以创建快捷键Alt+ Ctrl+Del在Linux中,但有一些其他更有趣的组合,你可能想知道。

按住AltSysRq(这是Print Screen键)并REISUB在每个键之间输入几秒(我通常数到 5)秒将使您安全地重新启动。REISUO将关闭而不是重新启动。正如评论所指出的,这不是单个命令,而是许多命令的组合,每个命令都执行特定的操作。因此,我建议查看REISUB - 温和的 Linux 重启以了解更多详细信息。

你可能已经知道这一点,但按Alt+ Ctrl+中的任意键从F1F6获得在任何时间,您可以在文本模式,并使用命令行中使用登录控制台。当我弄乱桌面环境时,这非常有用。

  • 投反对票。定义“慢慢地”,或解释`reisub` **真正** 的作用。这不是单个命令,而是 6 个命令的组合,每个命令都做一些特定的事情(有关详细信息,请查阅关于 *magic SysRq key* 的维基百科文章)。因此,如果您在“e”之后太快地点击“i”,您可以在程序仍在关闭时终止它们 - 就像我在阅读此答案后所做的那样。 (2认同)

Cir*_*郝海东 5

Linux 内核可以硬重启或向 init 进程发送 SIGINT Ctrl+ Alt+Del

因此,如果启用了 SIGINT 行为,那么您可以让++Ctrl做您的 init 想要它做的任何事情。AltDel

Linux 内核本身允许Ctrl++有两种可能Alt的行为Del

  • 立即重新启动
  • 向 init 进程发送 SIGINT

可以通过以下任一方式选择使用哪种行为:

  • reboot系统调用,参见man 2 reboot
  • /proc/sys/kernel/ctrl-alt-del

例如,BusyBox' 1.28.3 init 执行任意命令,如下所示/etc/inittab

::ctrlaltdel:/sbin/reboot
Run Code Online (Sandbox Code Playgroud)

这是 uclibc 的一个最小的有趣的 C 示例:

#define _XOPEN_SOURCE 700
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/reboot.h>
#include <unistd.h>

void signal_handler(int sig) {
    write(STDOUT_FILENO, "cad\n", 4);
    signal(sig, signal_handler);
}

int main(void) {
    int i = 0;
    /* Disable the forced reboot, enable sending SIGINT to init. */
    reboot(RB_DISABLE_CAD);
    signal(SIGINT, signal_handler);
    while (1) {
        sleep(1);
        printf("%d\n", i);
        i++;
    }
    return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

这里有一个简单的设置来尝试一下

例如,在 Ubuntu 20.10 上,它使用 systemd 作为 init,一切都已连接好,因此Ctrl++默认情况AltDel会在 GUI 上注销您。我怎样才能给 systemd 中的 CTRL-ALT-DEL 一个宽限期,这表明这是由 控制的/lib/systemd/system/ctrl-alt-del.target,但在我的系统上,这只是 的符号链接reboot.target,它似乎实际上是重新启动,而不仅仅是注销。也许比我更有耐心的人可以准确地弄清楚发生了什么。