Liệu Linux có một CTRL+ ALT+ DELtương đương?
Liệu Linux có một CTRL+ ALT+ DELtương đương?
Câu trả lời:
X có thể bị giết bằng cách sử dụng Ctrl+ Alt+ BackSpacevà nếu bạn nhấn Ctrl+ Alt+ F1(hoặc F2 đến 6), bạn sẽ bị rơi vào bảng điều khiển ảo nơi bạn có thể nhập lệnh để tắt ứng dụng xấu. Để quay lại GUI, nhấn Ctrl+ Alt+ F7.
Trong GNU / Linux [ít nhất là dựa trên kiểu khởi động SystemV ], hành vi của ctrl+ alt+ delphụ thuộc vào tệp cấu hình /etc/inittab
nơi bạn có thể đọc một dòng như:
<id>::ctrlaltdel:/sbin/shutdown -t3 -r now
(ví dụ từ bản phân phối ArchLinux) có nghĩa là hệ thống sẽ bị tắt khi nhận được tổ hợp phím. Nhưng bạn có thể muốn làm một cái gì đó khác, như * :
<id>::ctrlaltdel:/usb/bin/sudo make me a sandwich
(hữu ích hơn nhiều :)
Vâng, bạn có thể tạo lối tắt cho Alt+ Ctrl+ Deltrong Linux, nhưng có một số kết hợp thú vị khác mà bạn có thể muốn biết.
Giữ Altvà SysRq(đó là Print Screenphím) và gõ REISUBvới một vài (tôi thường đếm đến 5) giây giữa mỗi phím sẽ giúp bạn khởi động lại một cách an toàn. REISUOsẽ tắt máy thay vì khởi động lại. Như được chỉ ra bởi một nhận xét, đây không phải là một lệnh đơn lẻ, mà là sự kết hợp của nhiều lệnh, mỗi lệnh làm một việc cụ thể. Vì vậy, tôi khuyên bạn nên xem REISUB - khởi động lại Linux nhẹ nhàng để biết thêm chi tiết.
Và bạn có thể đã biết điều này nhưng nhấn Alt+ Ctrl+ bất kỳ phím F1nào F6để có được bàn điều khiển bất cứ lúc nào, bạn có thể sử dụng để đăng nhập ở chế độ văn bản và sử dụng dòng lệnh. Điều này rất hữu ích khi tôi làm hỏng môi trường máy tính để bàn của mình.
reisub
thực sự làm. Đây không phải là một lệnh đơn lẻ, mà là sự kết hợp của 6 lệnh, mỗi lệnh thực hiện một số thứ cụ thể (tra cứu bài viết Wikipedia về phím SysRq ma thuật để biết chi tiết). Vì vậy, nếu bạn đánh i
quá nhanh sau đó e
, bạn có thể tắt các chương trình trong khi chúng vẫn đang tắt - giống như tôi đã làm sau khi đọc câu trả lời này.
Có, tuy nhiên hành động cần thực hiện tùy thuộc vào cấu hình trình quản lý máy tính để bàn. Trong KDE, nó hiển thị một hộp thoại mà bạn có thể chọn nếu khởi động lại hoặc tạm dừng hệ thống.
Trong bảng điều khiển Linux, theo mặc định trong hầu hết các bản phân phối, Ctrl+ Alt+ Delhoạt động như trong MS-DOS - nó khởi động lại hệ thống.
Trong GUI, Ctrl+ Alt+ Backspacesẽ giết máy chủ X hiện tại và khởi động máy chủ mới, do đó hoạt động giống như chuỗi SAK trong Windows ( Ctrl+ Alt+ Del).
REISUB sẽ là tương đương gần nhất. Các khóa Magic SysRq là cách duy nhất để mô phỏng các thiết lập cứng Windows / DOS truyền thống trong Linux / UNIX.
Đối với giao diện giống như Trình quản lý chương trình, hãy sử dụng đầu trang và nhấn 'k' cho 'k'ill.
Ctrl+ Alt+ Backspacebị tắt theo mặc định trong Máy chủ X> 1.6 (mặc dù một số bản phân phối kích hoạt lại nó trong các tệp cấu hình mà chúng gửi). Mặc dù nó không làm những gì Windows Ctrl+ Alt+ Delnói chung trong việc tiêu diệt X và sửa các chương trình xử lý sai được ưu tiên hơn là khởi động lại máy.
Trong gnome, có một tính năng gọi là "Phím tắt" cho phép bạn tùy chỉnh các phím tắt.
Trình quản lý quy trình cho Gnome được gọi là gnome-system-Monitor, vì vậy nếu bạn đi đến: - Hệ thống; - Sở thích; - Phím tắt và thêm màn hình gnome-system dưới dạng CTRL+ ALT+ DELnó sẽ phù hợp với bạn :)
Có, chúng là các khóa giống như trên Ubuntu nhưng chúng có thể thay đổi tùy theo bản phân phối của bạn.
Nhân Linux có thể khởi động lại cứng hoặc gửi SIGINT quá trình init khi Ctrl+ Alt+Del
Do đó, nếu hành vi SIGINT được bật, thì bạn có thể thực hiện Ctrl+ Alt+ Dellàm bất cứ điều gì mà init của bạn muốn nó thực hiện.
Hạt nhân Linux cho phép hai hành vi có thể có từ Ctrl+ Alt+ Del:
Hành vi nào được sử dụng có thể được chọn với một trong hai:
reboot
gọi hệ thống, xem man 2 reboot
/proc/sys/kernel/ctrl-alt-del
Ví dụ: init 1.28.3 của BusyBox thực thi một lệnh tùy ý được đưa ra /etc/inittab
dưới dạng:
::ctrlaltdel:/sbin/reboot
Và đây là một ví dụ C thú vị tối thiểu cho 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;
}