Что значение и команда выполняются на Ctrl+Alt+Del в Linux?

Вы, возможно, должны включить поддержку виртуализации в BIOS также...

7
20.05.2018, 17:43
3 ответа

Ctrl+Alt+Delete является на самом деле "волшебным" нажатием клавиши для совместимой с IBM PC аппаратной архитектуры, которая назвала бы сброс BIOS.

Так как такого рода вещь опасна для системы как Linux, решение было принято, чтобы сцепить те нажатия клавиш и сделать что-то еще вместо этого. Этим управляют init и Вы видите то, что это делает путем заглядывания /etc/inittab.

На моем Debian Сжимают систему:

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

Windows NT позже следовал примеру и превратил Ctrl+Alt+Delete в безопасную ключевую запись mode*.

В случае X, это так же сцепляет нажатия клавиш, но это просто kills сервер дисплея (который будет автоматически повторно метать икру, если Вы будете использовать менеджера по оформлению).

Некоторые системы (возможно, все, я не попробовал в некоторое время), можно все еще нажать Ctrl+Alt+Delete, прежде чем ОС загрузится для инициирования сброса BIOS.


*я не уверен, что они на самом деле называют им.

6
27.01.2020, 20:17
  • 1
    Спасибо!, Что /etc/inittab используемый для? –  StackExchange for All 08.07.2012, 15:07
  • 2
    @Tim: /etc/inittab более или менее файл конфигурации для init. –  bahamat 08.07.2012, 21:01
  • 3
    На моей Ubuntu 12.04 нет никакого/etc/inittab. Какова могла бы возможно быть альтернатива? –  StackExchange for All 09.07.2012, 00:08
  • 4
    , правильно. Использование Ubuntu upstart вместо init. Эквивалент на Ubuntu etc/init каталог. (Отметьте нет /etc/init.d). –  bahamat 09.07.2012, 01:29
  • 5
    @Tim /etc/init/control-alt-delete.conf Что касается выскочки, все еще звонят выскочку init, но это не традиционное init. См. статью Wikipedia и страницу проекта. –  Eliah Kagan 09.07.2012, 04:43
  • 6
    @Tim /etc/init/control-alt-delete.conf Что касается выскочки, все еще звонят выскочку init, но это не традиционное init. См. статью Wikipedia и страницу проекта. –  Eliah Kagan 09.07.2012, 04:43

El kernel de Linux puede realizar un reinicio completo o enviar SIGINT al proceso de inicio con Ctrl + Alt + Supr

El propio kernel de Linux permite dos posibles comportamientos de Ctrl -Alt -Supr:

  • reiniciar inmediatamente
  • enviar SIGINT al proceso de inicio

El comportamiento que se utiliza se puede seleccionar con:

  • rebootllamada al sistema, verman 2 reboot
  • /proc/sys/kernel/ctrl-alt-del

Por lo tanto, si el comportamiento SIGINT está habilitado, el resultado de Ctrl + Alt + Supr depende completamente del controlador SIGINT que tenga su init.

Por ejemplo, BusyBox' 1.28.3 init ejecuta un comando arbitrario dado en /etc/inittabcomo:

::ctrlaltdel:/sbin/reboot

Y aquí hay un ejemplo en C mínimo e interesante para uclibc:

#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;
}

Aquí hay una configuración fácil para probar esto .

2
27.01.2020, 20:17

Las distribuciones de Linux contemporáneas usan systemden lugar de SysV init. El comportamiento de ctrl -alt -delete combo es manejado por ctrl -alt -del.target, que está vinculado de forma predeterminada a reboot.target, pero podría configurarse en cualquier otro.

Lista de objetivos disponibles:

systemctl list-unit-files -t target

Objetivo de conmutación

Presionar el combo más de 7 veces en 2 segundos (como mantener presionado )forzaría el reinicio inmediato por defecto (o la acción especificada porCtrlAltDelBurstAction).

También es útil kbrequest.target, pero no está habilitado de forma predeterminada.

1
27.01.2020, 20:17

Теги

Похожие вопросы