Gửi đầu vào cho một phiên màn hình từ bên ngoài


18

Kịch bản của tôi là thế này:

Tôi có một phiên màn hình đang chạy ở một địa điểm từ xa. Bên trong màn hình này là một chương trình dựa trên sự an ủi. Khi chạy mà không có màn hình, chương trình này bắt đầu trong thiết bị đầu cuối và chấp nhận các lệnh trên đầu vào tiêu chuẩn của nó.

Những gì tôi muốn là một cách để gửi một lệnh từ xa đến màn hình để lệnh này được chương trình điều khiển nhận được. Có lẽ như thế này:

PC của tôi -> SSH Gửi Msg Auto -> Phiên màn hình -> Chương trình (Đã nhận lệnh chạy)

Vì vậy, từ một PC từ xa, tôi có thể gửi qua các lệnh SSH đến màn hình gửi chúng đến chương trình. Chương trình chấp nhận chúng và thực hiện chúng.

Câu trả lời:


17

Nếu tôi hiểu chính xác, bạn muốn gửi đầu vào cho một chương trình đang chạy trong phiên màn hình. Bạn có thể làm điều này với stufflệnh của màn hình . Sử dụng -Xtùy chọn của màn hình để thực thi lệnh trong phiên màn hình mà không cần đính kèm.

screen -S sessionname -p windowname -X stuff 'command1
command2
'

Nếu bạn muốn nhìn thấy đầu ra của chương trình, vui lòng xem hardcopy, loglogfilelệnh.


Đã thử lệnh Stuff nhưng nó chỉ gửi các lệnh từ màn hình. Bạn thấy nó chỉ chấp nhận các lệnh có liên quan đến màn hình, không phải chương trình đang sử dụng có liên quan.
Luis Alvarado

@CYREX: stuffgửi các ký tự, chính xác như thể bạn đã gõ chúng. Chính xác thì bạn đã thử gì, hiệu ứng dự định là gì và thay vào đó là gì?
Gilles 'SO- ngừng trở nên xấu xa'

Tôi thấy bạn có phần -p. Tôi không có điều đó. Đã thêm phần đó và nó đang gửi lệnh ngay bây giờ nhưng làm cách nào tôi có thể nhấn ENTER cho mỗi lệnh?
Luis Alvarado

Đã tìm thấy nó. Thêm $ trước dấu ngoặc kép và có C như thoát trong đó. Giống như điều này -X thứ $ 'hiển thị người dùng \ n'
Luis Alvarado

@CYREX: -plà cần thiết (hoặc ít nhất là một ý tưởng tốt) nếu có nhiều hơn một cửa sổ. Để nhấn vào Enter Enter, chỉ cần đưa một dòng mới vào đối số (tức là bên trong dấu ngoặc kép), như tôi đã làm.
Gilles 'SO- ngừng trở nên xấu xa'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.