Có, một chương trình chạy qua SSH sẽ phụ thuộc vào đầu ra của nó đi đâu đó. Nếu kết nối chậm, đầu ra phải được đệm ở đâu đó và bộ đệm không thể là vô hạn, vì vậy chương trình phải chặn nếu chúng được lấp đầy.
Lưu ý rằng đầu ra có thể không nhất thiết phải đến một thiết bị đầu cuối: xem xét việc chạy một cái gì đó như
ssh user@somewhere "cat file.txt" > file.txt
Điều này sẽ có hiệu lực sao chép các tập tin. Để làm việc này, tốc độ đầu ra của mèo phải khớp với kết nối: rõ ràng là việc mất các phần của đầu ra từ giữa sẽ không được chấp nhận.
Màn hình sẽ thay đổi tình huống trong đó nó hoạt động như một thiết bị đầu cuối và sẽ lưu những gì sẽ được hiển thị "trên cửa sổ thiết bị đầu cuối" (cộng với cuộn ngược lại). Không cần phải nhớ tất cả mọi thứ mà chương trình của bạn xuất ra, chỉ những phần phù hợp với "cửa sổ" và cuộn lại. Theo mặc định, màn hình sẽ chờ kết nối chậm (chặn chương trình), nhưng nó có thể được cấu hình để phát hiện kết nối bị kẹt bằng cách đặt "không chặn".
Từ trang người đàn ông:
không chặn [bật | tắt | numsecs]
Cho màn hình biết cách xử lý giao diện người dùng (màn hình) ngừng chấp nhận đầu ra. Điều này có thể xảy ra nếu người dùng nhấn ^ S hoặc kết nối TCP / modem bị cắt nhưng không nhận được hangout. Nếu nonblock bị tắt (đây là mặc định), màn hình sẽ đợi cho đến khi màn hình khởi động lại để chấp nhận đầu ra. Nếu không chặn được bật, màn hình sẽ đợi cho đến khi hết thời gian chờ (bật được coi là 1s). Nếu màn hình vẫn không nhận được ký tự, màn hình sẽ coi nó là "bị chặn" và ngừng gửi các ký tự đến nó. Nếu đôi khi nó khởi động lại để chấp nhận các ký tự, màn hình sẽ bỏ chặn màn hình và hiển thị lại nội dung cửa sổ được cập nhật.
Ngắt kết nối khác với kết nối chậm. Plain SSH không thể tự động phục hồi từ nó, vì vậy chương trình của bạn sẽ nhận được SIGHUP. Mặt khác, màn hình sẽ phát hiện ngắt kết nối, tách ra và quay trở lại bộ đệm cục bộ cho đến khi màn hình được gắn lại. Điều này sẽ không chặn chương trình đang chạy.
(Thiết lập nonblock 1
trong bạn .screenrc
là rất quan trọng nếu bạn chạy một cái gì đó giống như irssi mà liên tục sẽ tạo ra sản lượng nhưng vẫn phải nói chuyện với mạng cùng một lúc. Blocking sẽ dẫn đến bị ngắt kết nối từ IRC, mà là cực kỳ khó chịu ...)