Lệnh agetty
là chương trình dòng lệnh dùng để quản lý kết nối tty trong Linux, thường xuất hiện ở các hệ thống không dùng giao diện đồ họa. Trong bài viết này, bạn sẽ hiểu rõ vai trò của agetty
, cách sử dụng, cú pháp cơ bản và các ứng dụng thực tế. Mình cũng sẽ hướng dẫn 6 ví dụ điển hình để bạn dễ hình dung hơn về cách hoạt động của lệnh này trong môi trường Linux. Cuối cùng là phần giới thiệu giải pháp lưu trữ tối ưu từ Vietnix và mục FAQ để giải đáp nhanh các thắc mắc thường gặp.
Điểm chính cần nắm
- Lệnh agetty trong Linux là gì?: Giới thiệu khái quát về lệnh agetty và vai trò của nó trong quản lý kết nối tty trên Linux.
- Cú pháp lệnh agetty: Trình bày cú pháp chuẩn của lệnh agetty và giải thích ý nghĩa các tham số.
- 6 ví dụ sử dụng lệnh agetty trong Linux: Hướng dẫn chi tiết 6 tình huống thực tế sử dụng lệnh agetty với các tùy chọn phổ biến.
- Vietnix – Giải pháp lưu trữ tốc độ cao và an toàn cho website của bạn: Giới thiệu dịch vụ hosting chất lượng cao từ Vietnix, tối ưu cho website nhanh, ổn định và bảo mật.
- FAQ: Tổng hợp các câu hỏi thường gặp liên quan đến lệnh agetty trong Linux nhằm giúp bạn hiểu sâu và dễ áp dụng hơn.
Lệnh agetty trong Linux là gì?
Lệnh agetty
là một chương trình trong Linux dùng để quản lý terminal vật lý hoặc ảo (tty). Mục tiêu chính của lệnh này là mở kết nối tty, hiển thị lời nhắc đăng nhập, và khởi chạy tiến trình /bin/login
để người dùng có thể đăng nhập vào hệ thống.

Nói cách khác, agetty
là phiên bản hiện đại của getty
– một công cụ truyền thống trong Unix, viết tắt của “get tty”, có nhiệm vụ quản lý truy cập người dùng thông qua các thiết bị đầu cuối (terminal). Trong Linux, các thiết bị đầu cuối ảo (virtual tty) hoạt động tương tự như terminal thật, và agetty
được dùng để tương tác với chúng.
Vai trò chính của agetty
- Mở thiết bị tty (ví dụ:
/dev/tty1
,/dev/ttyS0
). - Hiển thị lời nhắc đăng nhập cho người dùng.
- Gọi tiến trình
/bin/login
để xử lý đăng nhập. - Hỗ trợ nhiều tính năng bổ sung như:
- Tự động đăng nhập người dùng.
- Cấu hình timeout nếu không có ai đăng nhập trong một khoảng thời gian nhất định.
- Kiểm soát luồng dữ liệu (CTS/RTS) trong các kết nối serial.
Ứng dụng phổ biến của agetty
- Trong server không có giao diện đồ họa (GUI).
- Trên hệ thống nhúng (embedded systems).
- Khi quản lý serial console thông qua cổng COM hoặc thiết bị ngoại vi.
Cú pháp lệnh agetty
Cú pháp đơn giản
agetty [options] port [baud_rate...] [term]
Trong đó:
- port: Đường dẫn thiết bị tty, thường là tên thiết bị trong thư mục
/dev
, ví dụtty1
,ttyS0
. Nếu dùng dấu-
, nghĩa là đầu vào chuẩn (stdin) đã kết nối sẵn với một tty. - baud_rate: Danh sách các tốc độ truyền dữ liệu (baud rate), phân tách bằng dấu phẩy, ví dụ
9600,19200
. Thông thường dùng cho các thiết bị serial. - term: Giá trị của biến môi trường
TERM
để xác định loại terminal, ví dụlinux
,vt100
,vt102
.
Một số tùy chọn phổ biến của lệnh agetty
Tùy chọn | Mô tả ngắn |
---|---|
-8 , --8bits | Kích hoạt chế độ truyền dữ liệu 8-bit. |
-a , --autologin | Tự động đăng nhập người dùng mà không hỏi mật khẩu. |
-c , --noreset | Không reset thiết bị tty khi bắt đầu. |
-E , --remote | Cho phép truyền hostname cho đăng nhập từ xa (ví dụ telnet). |
-h , --flow-control | Bật kiểm soát luồng dữ liệu bằng CTS/RTS. |
-i , --noissue | Không hiển thị thông báo đăng nhập (/etc/issue ). |
-J , --noclear | Không xóa màn hình trước khi hiển thị lời nhắc đăng nhập. |
-m , --extract-baud | Tự động lấy tốc độ baud từ thiết bị tty. |
-n , --skip-login | Bỏ qua bước đăng nhập, vào thẳng shell (dùng cho auto-login). |
-p , --login-pause | Dừng chờ nhấn phím trước khi hiển thị lời nhắc đăng nhập. |
-R , --hangup | Thực hiện ngắt kết nối ảo (vhangup) với terminal. |
-s , --keep-baud | Giữ nguyên tốc độ baud đang dùng. |
-t , --timeout | Đặt thời gian chờ (giây) trước khi ngắt kết nối nếu không đăng nhập. |
-U , --detect-case | Phát hiện terminal chỉ gõ chữ hoa và điều chỉnh đăng nhập. |
--help | Hiển thị trợ giúp. |
--version | Hiển thị phiên bản agetty . |
agetty
trong LinuxVí dụ cụ thể:
agetty -8 ttyS0 9600 vt100
- Mở thiết bị
/dev/ttyS0
- Tốc độ truyền 9600 baud
- Thiết lập
TERM=vt100
-8
: dùng chế độ truyền dữ liệu 8-bit
6 ví dụ sử dụng lệnh agetty
trong Linux
Mở terminal ảo với truyền dữ liệu 8-bit
agetty -8 - linux
- Mục đích: Khởi tạo terminal ảo sử dụng chế độ truyền dữ liệu 8-bit đầy đủ.
- Giải thích:
-8
: bật chế độ truyền 8-bit, phù hợp với các thiết bị và ứng dụng cần dữ liệu đầy đủ 8 bit.-
: thông báo choagetty
biết đầu vào chuẩn (stdin) đã kết nối với một tty.linux
: thiết lập biến môi trườngTERM=linux
cho terminal.

Thiết lập thời gian chờ 5 giây
agetty -8 -t 5 - linux
- Mục đích: Giới hạn thời gian đăng nhập trong 5 giây, nếu người dùng không nhập sẽ tự động ngắt.
- Giải thích:
-t 5
: đặt timeout 5 giây cho tiến trình đăng nhập.- Các phần còn lại giống ví dụ trên.

Kết nối với thiết bị tty với kiểm soát luồng
agetty -h -t 60 tty 9600 vtxxx
- Mục đích: Mở kết nối với thiết bị tty thật (ví dụ
/dev/tty
), tốc độ truyền 9600 baud, có kiểm soát luồng dữ liệu CTS/RTS, và timeout 60 giây. - Giải thích:
-h
: bật kiểm soát luồng CTS/RTS giúp truyền dữ liệu ổn định hơn qua cổng serial.-t 60
: đặt timeout 60 giây.tty
: thiết bị đầu cuối/dev/tty
.9600
: tốc độ baud.vtxxx
: đặt biếnTERM=vtxxx
, mô phỏng terminal VTxxx.

Tự động đăng nhập người dùng
agetty -a username -h -t 60 tty 9600 vt102
- Mục đích: Khởi tạo terminal ảo sử dụng chế độ truyền dữ liệu 8-bit đầy đủ.
- Giải thích:
-8
: bật chế độ truyền 8-bit, phù hợp với các thiết bị và ứng dụng cần dữ liệu đầy đủ 8 bit.-
: thông báo choagetty
biết đầu vào chuẩn (stdin) đã kết nối với một tty.linux
: thiết lập biến môi trườngTERM=linux
cho terminal.

Kiểm tra phiên bản
agetty --version
- Mục đích: Tự động đăng nhập vào hệ thống với user
username
mà không cần nhập mật khẩu. - Giải thích: Dùng để kiểm tra xem phiên bản agetty có hỗ trợ các tùy chọn mới nhất hay không.

Kết hợp nhiều tùy chọn nâng cao
agetty -a username -h -t 60 -U -s -m tty 9600 vt100
- Mục đích: Mở terminal với nhiều tùy chọn nâng cao: tự động đăng nhập, kiểm soát luồng, timeout, nhận diện terminal chỉ dùng chữ hoa, giữ tốc độ baud hiện tại, và trích xuất tốc độ baud chính xác.
- Giải thích:
-a username
: tự động đăng nhập user.-h
: bật kiểm soát luồng CTS/RTS.-t 60
: timeout 60 giây.-U
: phát hiện terminal chỉ gõ chữ hoa và điều chỉnh đăng nhập.-s
: giữ tốc độ baud hiện tại.-m
: dùng tốc độ baud chính xác được chỉ định.tty 9600 vt100
: thiết bị tty, tốc độ baud, và loại terminal.

Vietnix – Giải pháp lưu trữ tốc độ cao và an toàn cho website của bạn
Vietnix cung cấp các dịch vụ lưu trữ web như VPS, hosting và máy chủ riêng với hiệu suất vượt trội, tốc độ truy cập nhanh, tính ổn định cao và bảo mật tối ưu. Nhờ hệ thống máy chủ hiện đại đặt tại Việt Nam cùng đội ngũ kỹ thuật nhiều kinh nghiệm trực 24/7, Vietnix đảm bảo website của bạn luôn vận hành mượt mà, an toàn và được hỗ trợ kịp thời khi cần.
Với sự linh hoạt trong từng gói dịch vụ, Vietnix đáp ứng tốt nhu cầu của cả cá nhân, doanh nghiệp nhỏ đến hệ thống lớn. Ngoài ra, bạn còn nhận được nhiều lợi ích như sao lưu định kỳ, hỗ trợ kỹ thuật chuyên sâu và cam kết uptime 99,9%.
Thông tin liên hệ:
- Website: https://stag.vietnix.dev/
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, TP HCM.
Làm sao để sử dụng agetty để tự động đăng nhập người dùng?
-a tên_user
, ví dụ: agetty -a vietnix tty1
, để hệ thống tự động đăng nhập mà không cần nhập mật khẩu.Có thể dùng agetty để hiển thị lời nhắc đăng nhập trên cổng serial không?
agetty -L ttyS0 9600 vt100
dùng để hiển thị login prompt qua serial trên ttyS0 với tốc độ 9600bps.Làm sao để đặt thời gian chờ đăng nhập trong agetty?
-t
, ví dụ: agetty -t 10 tty1
sẽ thoát nếu không có đăng nhập trong vòng 10 giây.Khi nào nên dùng agetty thay vì systemd hoặc các giải pháp hiện đại hơn?
agetty
vẫn là lựa chọn nhẹ và hiệu quả hơn so với systemd.Sự khác biệt giữa agetty và getty nguyên thủy trong UNIX là gì?
agetty
là phiên bản hiện đại hóa, hỗ trợ thêm nhiều tuỳ chọn như autologin, timeout, serial flow control… trong khi getty
cũ có tính năng giới hạn và ít linh hoạt.agetty có thể dùng trong Docker container không?
Điều gì xảy ra nếu không chỉ định biến TERM trong agetty?
Làm thế nào để tích hợp agetty vào systemd?
/etc/systemd/system/serial-getty@ttyS0.service
, trong đó gọi agetty cho thiết bị tty tương ứng với các tham số phù hợp.Lời kết
Việc nắm vững cách dùng lệnh agetty
giúp bạn kiểm soát tốt hơn các phiên đăng nhập qua terminal hoặc serial, đặc biệt trong môi trường server hoặc hệ thống nhúng. Nếu bạn có bất kỳ câu hỏi nào liên quan đến agetty
hoặc cách quản lý tty trong Linux, đừng ngần ngại để lại bình luận. Ngoài ra, bạn cũng có thể tham khảo thêm các bài viết khác trên blog để mở rộng kiến thức về quản trị hệ thống. Đừng quên theo dõi Vietnix để cập nhật những công cụ và giải pháp tối ưu cho website của bạn.
Mọi người cũng xem: