Không thể tiếp tục màn hình, nói rằng tôi đã được đính kèm?


151

Tôi đang làm việc trên một máy chủ Debianieie từ xa. Tôi đã bắt đầu một phiên màn hình, bắt đầu chạy một tập lệnh, sau đó bị ngắt kết nối bởi thời gian chờ mạng.

Bây giờ tôi đã đăng nhập lại và muốn tiếp tục phiên.

Đây là những gì tôi thấy khi tôi liệt kê màn hình:

$ screen -ls
There are screens on:
    30608.pts-8.myserver    (11/03/2015 08:47:58 AM)    (Attached)
    21168.pts-0.myserver    (11/03/2015 05:29:24 AM)    (Attached)
    7006.pts-4.myserver (10/23/2015 09:05:45 AM)    (Detached)
    18228.pts-4.myserver    (10/21/2015 07:50:49 AM)    (Detached)
    17849.pts-0.myserver    (10/21/2015 07:43:53 AM)    (Detached)
5 Sockets in /var/run/screen/S-me.

Tôi dường như được gắn vào hai màn hình cùng một lúc.

Bây giờ tôi muốn tiếp tục phiên tôi đã chạy trước đó, để xem kết quả của tập lệnh của mình:

$ screen -r 30608.pts-8.myserver
There is a screen on:
    30608.pts-8.OpenPrescribing (11/03/2015 08:47:58 AM)    (Attached)
There is no screen to be resumed matching 30608.pts-8.myserver.

Tại sao tôi không thể đính kèm lại?

Tôi có cùng một vấn đề với màn hình khác:

$ screen -r 21168.pts-0.myserver
There is a screen on:
    21168.pts-0.OpenPrescribing (11/03/2015 05:29:24 AM)    (Attached)
There is no screen to be resumed matching 21168.pts-0.myserver.

Câu trả lời:


242

Phiên vẫn được đính kèm trên một thiết bị đầu cuối khác. Máy chủ đã không phát hiện sự cố ngừng mạng trên kết nối đó: nó chỉ phát hiện sự cố ngừng hoạt động khi nó cố gửi một gói tin và nhận được lỗi hoặc không có phản hồi sau khi hết thời gian, nhưng điều này chưa xảy ra. Bạn đang ở trong một tình huống phổ biến khi khách hàng phát hiện ra sự cố ngừng hoạt động vì nó đã cố gửi một số đầu vào và không thành công, nhưng máy chủ chỉ ngồi đó chờ đầu vào. Cuối cùng, máy chủ sẽ gửi một gói giữ và phát hiện ra rằng kết nối đã chết.

Trong thời gian chờ đợi, hãy sử dụng -dtùy chọn để tách phiên màn hình khỏi thiết bị đầu cuối nơi nó ở.

screen -r -d 30608

screen -rd là khá nhiều cách tiêu chuẩn để đính kèm vào một phiên màn hình hiện có.


15
Để đính kèm vào một phiên màn hình hiện có, đó là screen -x, screen -rdlà để đính kèm vào nó sau khi đã tách nó từ mỗi thiết bị đầu cuối nó được gắn vào. Trong trường hợp của OP, tôi đồng ý rằng cái sau có lẽ được ưa thích hơn, nhưng trong trường hợp chung, không nhất thiết phải như vậy. Tôi thường sử dụng -xRđể đính kèm hoặc tạo nếu không có gì để đính kèm.
Stéphane Chazelas

10

Theo hướng dẫn, bạn chỉ có thể "tiếp tục" màn hình tách ra :

' [Match] ' ' [match] ' Không bắt đầu màn hình, mà thay vào đó hãy in danh sách các chuỗi nhận dạng phiên (thường có dạng pid.tty.host; xem Tên phiên). Các phiên được đánh dấu 'tách ra' có thể được nối lại . Những người được đánh dấu 'đính kèm' đang chạy và có thiết bị đầu cuối kiểm soát. Nếu phiên chạy ở chế độ nhiều người dùng, nó được đánh dấu là 'đa'. Các phiên được đánh dấu là "không thể truy cập" hoặc sống trên một máy chủ khác hoặc đã chết. Một phiên không thể truy cập được coi là đã chết, khi tên của nó khớp với tên của máy chủ lưu trữ cục bộ hoặc tham số đã chỉ định, nếu có. Xem-ls
-list
screen -r-rcờ cho một mô tả làm thế nào để xây dựng phù hợp. Các phiên được đánh dấu là "đã chết" cần được kiểm tra và loại bỏ triệt để. Hỏi quản trị hệ thống của bạn nếu bạn không chắc chắn. Xóa các phiên với -wipetùy chọn ''.

Những gì bạn muốn là tùy chọn này:

' -x'
Đính kèm vào một phiên đã được đính kèm ở nơi khác (chế độ đa màn hình). Màn hình từ chối đính kèm từ bên trong chính nó. Nhưng khi xếp tầng nhiều màn hình, các vòng lặp không được phát hiện; bảo trọng.


4
Với -xmột phiên vẫn sẽ được đính kèm 'ở đâu đó'. Để tiếp quản hoàn toàn phiên, nên sử dụng -d | -D (tùy chọn tách rời) cùng với -r | -R (tùy chọn reattach).
Andrew Kozlov

1
Đó là một sự thay thế, nhưng có thể không phải là những gì OP cần. Tôi thường xuyên đính kèm từ nhiều địa điểm.
Thomas Dickey

4

Tôi tùy ý sàng lọc với các tùy chọn -rD

Từ hướng dẫn:

-D -r
Reattach a session. If necessary detach and logout remotely first. 
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.