Thiết bị đầu cuối điều khiển trong Linux là gì?
Bạn có thể đã nghe thuật ngữ “thiết bị đầu cuối điều khiển” được sử dụng liên quan đến các quy trình Linux. Bạn có thể nhầm lẫn về thiết bị đầu cuối điều khiển là gì. May mắn thay, một thiết bị đầu cuối kiểm soát rất dễ hiểu.
Mục Lục
Thiết bị đầu cuối điều khiển là gì?
Thiết bị đầu cuối kiểm soát là thiết bị đầu cuối nơi quy trình Linux bắt đầu. Ví dụ: nếu bạn chạy một lệnh từ trình bao, cửa sổ đầu cuối nơi bạn nhập lệnh là đầu cuối điều khiển.
Các quy trình được khởi chạy với các thiết bị đầu cuối kiểm soát kế thừa các thuộc tính của thiết bị đầu cuối gốc. Điều này là do cách các quy trình được khởi chạy trong Linux. Khi bạn chạy một lệnh, shell sẽ tạo một bản sao của chính nó, hay còn gọi là “forks”, sau đó tự thay thế nó bằng chương trình bạn muốn chạy hay còn gọi là “execs”.
Cách xem quy trình nào có thiết bị đầu cuối điều khiển
Thật dễ dàng để thấy các quy trình có thiết bị đầu cuối kiểm soát trong Linux. Bạn có thể sử dụng lệnh ps để xem chúng.
Bạn có thể xem tất cả các quy trình thuộc về tất cả người dùng trên hệ thống, cho dù họ có thiết bị đầu cuối kiểm soát hay không, bằng cách sử dụng “phụ trợ” lý lẽ:
ps aux
Bởi vì điều này tạo ra rất nhiều đầu ra trên các hệ thống Linux, nên có thể hữu ích khi đưa nó vào một máy nhắn tin, chẳng hạn như less:
ps aux | less
Bạn cũng có thể xem một vài dòng đầu tiên bằng tiện ích head:
ps aux | head
Ở đầu ra, bạn sẽ thấy một cột có nhãn “TTY”. Điều này cho biết thiết bị đầu cuối kiểm soát của quy trình, nếu có. Một quy trình có thiết bị đầu cuối kiểm soát sẽ hiển thị “ttyx” trong đó “x” là số thiết bị đầu cuối hoặc “pts”, theo sau là dấu gạch chéo (/) và số dòng đầu cuối giả.
Vì hầu hết các thiết bị đầu cuối thực sự là trình giả lập thiết bị đầu cuối, nên chúng sử dụng đầu cuối giả hoặc PTY. “pts” biểu thị trình giả lập thiết bị đầu cuối chứ không phải thiết bị đầu cuối vật lý hoặc bảng điều khiển ảo.
Quy trình không có thiết bị đầu cuối điều khiển
Trên hầu hết các hệ thống Linux, cột TTY sẽ hiển thị dấu chấm hỏi (?) ký tự trong nhiều quy trình. Điều này là do quá trình không có thiết bị đầu cuối kiểm soát. Lý do tại sao điều này xảy ra?
Các hệ thống Linux chạy rất nhiều daemon hoặc dịch vụ ở chế độ nền. Đây có thể là các máy chủ, chẳng hạn như máy chủ web, cũng như các daemon thực hiện nhiều việc cơ bản như chạy kết nối mạng của bạn. Chúng không cần sử dụng thiết bị đầu cuối, vì vậy chúng chỉ chạy mà không cần thiết bị đầu cuối.
Nếu bạn khởi chạy một ứng dụng đồ họa từ menu của môi trường máy tính để bàn, ứng dụng đó cũng sẽ không có thiết bị đầu cuối điều khiển.
Bộ ghép kênh đầu cuối như GNU Screen hoặc tmux cho phép bạn tách một quy trình. Nếu bạn đăng xuất nhưng vẫn tiếp tục chạy hệ thống, bạn có thể thấy rằng quá trình đó cũng thiếu thiết bị đầu cuối kiểm soát.
Nếu bạn có một tiến trình không có thiết bị đầu cuối điều khiển mà bạn muốn loại bỏ, bạn có thể sử dụng tiện ích kill.
Bây giờ bạn đã biết về điều khiển thiết bị đầu cuối
Thiết bị đầu cuối kiểm soát là thiết bị đầu cuối mà bạn đã khởi chạy một lệnh từ đó. Thật dễ dàng để xem quy trình nào có và không có thiết bị đầu cuối kiểm soát bằng lệnh ps. Và nhiều chương trình Linux thì không, bởi vì chúng là daemon hoặc bạn có thể đã tách chúng ra bằng bộ ghép kênh đầu cuối.
Các bộ ghép kênh như tmux không chỉ làm cho các phiên đầu cuối cục bộ tồn tại qua các lần đăng nhập mà còn là công cụ mạnh mẽ cho các kết nối SSH từ xa.