Есть ли у Linux CTRL+ ALT+ DELэквивалент?
Есть ли у Linux CTRL+ ALT+ DELэквивалент?
Ответы:
X можно убить с помощью Ctrl+ Alt+ BackSpace, и если вы нажмете Ctrl+ Alt+ F1(или F2 до 6), вы попадете на виртуальную консоль, где вы можете вводить команды, чтобы убить плохое приложение. Чтобы переключиться обратно в графический интерфейс, нажмите Ctrl+ Alt+ F7.
В GNU / Linux [по крайней мере те, которые основаны на стиле инициализации SystemV ], поведение ctrl+ alt+ delзависит от файла конфигурации, /etc/inittab
где вы должны иметь возможность прочитать строку вроде:
<id>::ctrlaltdel:/sbin/shutdown -t3 -r now
(пример из дистрибутива ArchLinux), что означает, что система будет выключена, когда получит комбинацию клавиш. Но вы можете захотеть сделать что-то еще, например * :
<id>::ctrlaltdel:/usb/bin/sudo make me a sandwich
(что гораздо полезнее :)
Ну вы можете создать ярлык для Alt+ Ctrl+ Delв Linux, но есть некоторые другие более интересные комбинации , которые вы хотели бы знать.
Удерживая Altи SysRq(что является Print Screenклавишей) и набрав REISUBнесколько (я обычно считаю до 5) секунд между каждой клавишей, вы благополучно перезапустите. REISUOбудет делать выключение, а не перезапуск. Как указано в комментарии, это не отдельная команда, а комбинация множества команд, каждая из которых выполняет определенную функцию. Поэтому я рекомендую взглянуть на REISUB - легкий перезапуск Linux для более подробной информации.
И вы, возможно, уже знаете это, но нажмите Alt+ Ctrl+ любую из клавиш от, F1чтобы F6получить консоль в любое время, которую вы можете использовать для входа в текстовом режиме и использования командной строки. Это было очень полезно, когда я испортил свой рабочий стол.
reisub
самом деле . Это не отдельная команда, а комбинация из 6 команд, каждая из которых делает что-то свое (подробности смотрите в статье Википедии о волшебном ключе SysRq ). Так что если вы нажмете i
слишком быстро после этого e
, вы можете убить программы, пока они все еще закрываются - как я сделал после прочтения этого ответа.
Да, однако действие, которое требуется, зависит от конфигурации менеджера рабочего стола. В KDE это показывает диалог, для которого вы можете выбрать, перезапустить или остановить систему.
В консоли Linux по умолчанию в большинстве дистрибутивов Ctrl+ Alt+ Delведет себя как в MS-DOS - перезапускает систему.
В GUI, Ctrl+ Alt+ Backspaceубьет текущий сервер X и начать новую, таким образом , ведет себя как последовательность САК в Windows ( Ctrl+ Alt+ Del).
REISUB будет ближайшим аналогом. Ключи Magic SysRq - единственный способ эмулировать традиционные аппаратные перезагрузки Windows / DOS в Linux / UNIX.
Для интерфейса, подобного Менеджеру программ, используйте top и нажмите «k» для «k'ill».
Ctrl+ Alt+ Backspaceотключен по умолчанию в X-серверах> 1.6 (хотя некоторые дистрибутивы повторно включают его в поставляемых ими файлах конфигурации). Хотя он не делает то , что для Windows Ctrl+ Alt+ Delделает вообще смертельное X и фиксации программ плохо себя предпочтительнее перезагрузки машины.
В gnome есть функция под названием «Сочетания клавиш», которая позволяет настраивать сочетания клавиш.
Диспетчер процессов для Gnome называется gnome-system-monitor, поэтому если вы идете в: - Система; - предпочтения; - Сочетания клавиш и добавьте gnome-system-monitor как CTRL+ ALT+, DELэто должно работать для вас :)
Да, это те же ключи, что и в Ubuntu, но они могут различаться в зависимости от вашего дистрибутива.
Ядро Linux может либо перезагрузить аппарат, либо отправить SIGINT процесс init при Ctrl+ Alt+Del
Поэтому, если поведение SIGINT включена, то вы можете сделать Ctrl+ Alt+ Delделать все , что хочет , чтобы INIT это сделать.
Само ядро Linux допускает два возможных поведения из Ctrl+ Alt+ Del:
Какое поведение используется, можно выбрать с помощью:
reboot
системный вызов, см. man 2 reboot
/proc/sys/kernel/ctrl-alt-del
Например, BusyBox '1.28.3 init выполняет произвольную команду, заданную /etc/inittab
как:
::ctrlaltdel:/sbin/reboot
И вот минимально интересный пример C для 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;
}