Czy Linux ma odpowiednik CTRL+ ALT+ DEL?
Czy Linux ma odpowiednik CTRL+ ALT+ DEL?
Odpowiedzi:
X można zabić za pomocą Ctrl+ Alt+ BackSpace, a jeśli naciśniesz Ctrl+ Alt+ F1(lub F2 do 6), zostaniesz przeniesiony do wirtualnej konsoli, gdzie możesz wpisać polecenia, aby zabić złą aplikację. Aby wrócić do GUI, naciśnij Ctrl+ Alt+ F7.
W GNU / Linux [przynajmniej oparte na stylu inicjalizacji SystemV ] zachowanie ctrl+ alt+ delzależy od pliku konfiguracyjnego, w /etc/inittab
którym powinieneś być w stanie odczytać wiersz taki jak:
<id>::ctrlaltdel:/sbin/shutdown -t3 -r now
(przykład z dystrybucji ArchLinux), co oznacza, że system zostanie zamknięty po otrzymaniu kombinacji klawiszy. Ale możesz zrobić coś innego, na przykład * :
<id>::ctrlaltdel:/usb/bin/sudo make me a sandwich
(co jest o wiele bardziej przydatne :)
Cóż, możesz utworzyć skrót do Alt+ Ctrl+ Delw systemie Linux, ale istnieje kilka innych ciekawszych kombinacji, które możesz chcieć znać.
Przytrzymanie Alti SysRq(co jest Print Screenkluczem) i pisanie REISUBz kilkoma (zwykle liczę do 5) sekund między poszczególnymi klawiszami spowoduje bezpieczne ponowne uruchomienie. REISUOwykona zamknięcie zamiast ponownego uruchomienia. Jak wskazano w komentarzu, nie jest to pojedyncze polecenie, ale połączenie wielu poleceń, z których każde wykonuje określoną czynność. Dlatego polecam rzucić okiem na REISUB - delikatny restart Linuksa, aby uzyskać więcej szczegółów.
Być może już o tym wiesz, ale naciśnij Alt+ Ctrl+ dowolny klawisz od, F1aby F6w dowolnym momencie uzyskać konsolę, której możesz użyć do zalogowania się w trybie tekstowym i skorzystania z wiersza poleceń. Było to bardzo pomocne, gdy pomieszałem swoje środowisko pulpitu.
reisub
naprawdę robi. To nie jest pojedyncze polecenie, ale kombinacja 6 poleceń, z których każde robi coś konkretnego (szczegóły w artykule na Wikipedii na temat magicznego klucza SysRq ). Jeśli więc uderzysz i
zbyt szybko później e
, możesz zabić programy, które wciąż się zamykają - tak jak ja po przeczytaniu tej odpowiedzi.
Tak, jednak podejmowane działania zależą od konfiguracji menedżera pulpitu. W KDE pokazuje okno dialogowe, w którym możesz wybrać, czy zrestartujesz, czy zatrzymasz system.
W konsoli Linux, domyślnie w większości dystrybucji, Ctrl+ Alt+ Delzachowuje się jak w MS-DOS - uruchamia system ponownie.
W graficznym interfejsie Ctrl+ Alt+ Backspacezabije bieżący serwer X i uruchomi nowy, zachowując się jak sekwencja SAK w Windows ( Ctrl+ Alt+ Del).
REISUB byłby najbliższym odpowiednikiem. Magiczne klucze SysRq są jedynym sposobem emulacji tradycyjnych twardych resetów Windows / DOS w Linux / UNIX.
Aby uzyskać interfejs podobny do Menedżera programów, użyj top i naciśnij „k” dla „k”.
Ctrl+ Alt+ Backspacejest domyślnie wyłączony w X Server> 1.6 (chociaż niektóre dystrybucje włączają go ponownie w dostarczanych plikach konfiguracyjnych). Chociaż nie robi tego, co Windows Ctrl+ Alt+ Delogólnie zabija X i naprawianie źle zachowujących się programów jest lepsze niż ponowne uruchomienie komputera.
W gnome dostępna jest funkcja o nazwie „Skróty klawiaturowe”, która umożliwia dostosowanie skrótów klawiaturowych.
Menedżer procesu dla Gnome nazywa się gnome-system-monitor, więc jeśli przejdziesz do: - System; - Preferencje; - Skróty klawiaturowe i dodaj gnome-system-monitor jako CTRL+ ALT+ DELto powinno działać dla Ciebie :)
Tak, są to te same klucze, co w Ubuntu, ale mogą się różnić w zależności od dystrybucji.
Jądro Linux może albo ponownie uruchomić komputer na twardo, albo wysłać SIGINT proces init po Ctrl+ Alt+Del
Dlatego jeśli włączone jest zachowanie SIGINT, możesz Ctrl+ Alt+ Delzrobić wszystko, co twój inicjator chce.
Samo jądro Linux pozwala na dwa możliwe zachowania z Ctrl+ Alt+ Del:
Które zachowanie jest używane, można wybrać za pomocą:
reboot
wywołanie systemowe, patrz man 2 reboot
/proc/sys/kernel/ctrl-alt-del
Na przykład, BusyBox '1.28.3 init wykonuje dowolne polecenie podane /etc/inittab
jako:
::ctrlaltdel:/sbin/reboot
A oto minimalny interesujący przykład C dla 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;
}