Tôi có một máy chủ đang chạy ở chế độ nhiều người dùng được kết nối với bàn phím và màn hình. Trên một máy tính riêng biệt, tôi muốn SSH đến máy chủ và chạy một chương trình mà bắt đầu vào từ bàn phím và in văn bản vào màn hình. Bàn phím và màn hình sẽ không bao giờ được sử dụng cho bất kỳ mục đích nào khác.Làm thế nào tôi có thể nắm bắt các sự kiện bàn phím và sử dụng màn hình dưới dạng hiển thị văn bản trên Linux?
Ngay bây giờ, khi máy chủ khởi động, màn hình đăng nhập (văn bản) được hiển thị trên màn hình. Tôi biết rằng tôi có thể viết thư cho thiết bị /dev/tty
tương ứng. Tuy nhiên, bàn phím cũng ghi vào cùng một vị trí.
Làm cách nào để nắm bắt các sự kiện bàn phím và sử dụng màn hình dưới dạng hiển thị văn bản trên Linux?
Tôi có thể thiếu một số vấn đề cơ bản xung quanh phần cứng giao tiếp trên Linux. Tôi cần biết gì?
Chạy hết thời gian bounty - Nếu ai đó muốn xác thịt này ra xa hơn tôi sẽ trao giải cho phù hợp:
tôi đã phần sau đây để ngăn chặn bất kỳ chương trình đăng nhập từ bắt đầu:
systemctl mask [email protected]
systemctl mask systemd-logind
systemctl mask [email protected]
Sau đó tôi chạy chương trình của tôi khi cần thiết với:
openvt -c 1 -f /path/to/my/program
Đây sẽ là một giải pháp hoàn toàn thỏa mãn, ngoại trừ rằng pesky -f
. Điều gì đang chạy trên tty1
? Tôi có thể làm gì để ngăn không? Tôi có nên dừng nó không?
Đáng chú ý, giải pháp này làm đáp ứng mọi nhu cầu của tôi - Theo như tôi hiểu, tôi đang tiếp quản tty và do đó có quyền truy cập vào stdin của nó (nhận đầu ra từ bàn phím) và stdout (in để theo dõi)).
Tại sao không chỉ sshd chạy chương trình thích hợp khi đăng nhập? –
Bạn có thể xây dựng? Tôi không thấy kết nối giữa "cách bắt đầu chương trình" và "chương trình thực hiện mục tiêu của nó như thế nào". – ToBeReplaced
Ồ, tôi hiểu rồi. Bàn phím và màn hình bạn muốn kết nối được kết nối với * server *. Đó là những gì 'openvt' là cho. –