Không thể lấy màn hình ra để tiếp tục


11

Tôi sử dụng putty và có kết nối không dây không đáng tin cậy, vì vậy tôi sử dụng màn hình để tiếp tục công việc của mình. Thường thì tôi sẽ bị ngắt kết nối và sau đó tôi không thể gắn lại màn hình của mình. Tôi sẽ chạy screen -D -RRvà nó sẽ chỉ ngồi đó vô thời hạn. Tôi đã cố gắng ctrl+zđể lấy lại bàn điều khiển của mình, theo sau ps aux | grep screenvà sau đó kill -9cho tất cả các kết quả, và sau đó screen -D -RRmột lần nữa nhưng tôi nhận được kết quả tương tự. Tôi thử bất kỳ sự kết hợp nào giữa bạn và bạn muốn đề cập đến, nhưng nó vẫn chỉ nằm ở đó. Màn hình của tôi ở đó, nó sẽ không làm gì cả, ít nhất là tất cả các sơ yếu lý lịch.

Bất cứ ai cũng có bất kỳ mẹo hoặc thủ thuật hoặc ý tưởng nào để làm cho phiên màn hình của tôi tiếp tục?

Câu trả lời:


15

Tôi đã thấy điều này khi tôi thả một kết nối đến một màn hình hoạt động sau đó kết nối lại. Lỗi # 27462 ("Kết nối lại quầy hàng khi phiên ban đầu bị mất") mô tả sự cố như tôi thấy. Điều dường như xảy ra là màn hình đang cố thông báo cho tty biết rằng nó sắp rời đi, nhưng vì tty bị treo do kết nối bị rớt nên phải chờ thời gian chờ xảy ra (tức là lên đến năm phút trong vài trường hợp).

Để sửa nó, tôi làm điều này:

  • Tìm ra tty đang giữ cho phiên màn hình ps -ef | grep screen | grep pty
  • tìm bash đăng nhập được liên kết với tty đó ps -ef | grep bash | grep $PTY
  • giết chết kill -KILL $PID

Điều này khiến màn hình hoàn thành việc ngắt kết nối chính xác và cho phép bạn kết nối lại bình thường.

Xem ở đây cho một kịch bản ví dụ tự động hóa phần này.


ps -ef | màn hình grep | grep tty không bao giờ in bất cứ điều gì vì ps -ef | Màn hình grep không bao giờ trả lại bất cứ điều gì với chuỗi tty.
Dave Aaron Smith

Trên thực tế các kịch bản ví dụ dường như làm các mẹo. Cảm ơn!
Dave Aaron Smith

1
Vâng, ý tôi là 'pty', không phải 'tty'.
David Mackffy

2

Tôi đã có một vấn đề tương tự với các phiên màn hình của tôi. Tôi đặt tên cho chúng và để chúng thiết lập dưới dạng phiên nhiều người dùng. Những gì tôi tìm thấy là nó đã liệt kê các phiên của tôi nhưng nói với tôi rằng tôi không có gì để kết nối lại. Sau đó tôi đã thử:

screen -x <session_name>

Nó làm việc như một nhà vô địch!


1

Tôi không thể nói rằng tôi đã từng gặp sự cố với màn hình không quay trở lại, bất kể tôi đang sử dụng loại kết nối nào. Phương pháp thông thường của tôi:

ssh myname@foo
screen -S sessionName
(do my work... get disconnected...)

ssh myname@foo
screen -d (just to make sure anything wasn't left attached)
screen -r sessionName

1
Ví dụ: danh sách màn hình trả về 32322.mySession (Đã đính kèm). Sau đó, tôi sàng lọc -d mySession. Sau đó, danh sách màn hình vẫn trả về 32322.mySession (Đã đính kèm) và màn hình -r mySession trả về Không có màn hình nào được nối lại phù hợp với daveSession.
Dave Aaron Smith

bạn đã thử chỉ "màn hình -d"?
Jason Antman

0

Có thể là lỗi này đang ảnh hưởng đến bạn?

http://savannah.gnu.org/bugs/?27462

Bạn có thể thử làm cách giải quyết mà họ đề xuất và xem nếu nó hoạt động?


Cách giải quyết không có ý nghĩa nhiều với tôi. Đầu ra của màn hình ps -ef | grep của tôi hoàn toàn không giống ví dụ.
Dave Aaron Smith

0

Soulrce: https://kb.iu.edu/data/ahrm.html

To see your existing screen sessions, enter:
  screen -list
This will display a list of your current screen sessions. For instance, if you had one attached screen, you would see:

         1636.pts-21.hostname      (Attached)

To detach an attached screen, enter:
  screen -D
If you have more than one attached screen, you can specify a particular screen to detach. For example, to detach the screen in the above example, you would enter:
  screen -D 1636.pts-21.hostname

0

Nếu bạn thông minh như tôi, bạn đã cố gắng tiếp tục phiên màn hình bắt đầu như rootvới tài khoản người dùng thông thường. Tìm thấy điều này với ls /var/run/screenhiển thị cho tôi một thư mục choroot


0

Thỉnh thoảng tôi có cùng một vấn đề (màn hình -r -d không tiếp tục, không phản hồi). Để khắc phục, hãy tìm thiết bị đầu cuối (tty / pty) được liên kết với phiên màn hình:

screen -list
There is a screen on:
    28176.pts-51.localhost        (Attached)
1 Socket in /tmp/uscreens/S-xxxx.

Tìm thiết bị đầu cuối được liệt kê (trong ví dụ này pts-51):

ps axuw | grep 'pts/51'   # will vary depending upon how pty's are named
you     12293  0.0  0.2  2148 1128 pts/51   Ss   10:34   0:00 -bash

Giết các tiến trình trên thiết bị đầu cuối đó (thường là vỏ của bạn):

kill 12293

chạy lại ps để chắc chắn rằng nó đã biến mất Nếu không :

kill -9 12293

Trên máy chủ của tôi (gnu / linux), đôi khi tôi sẽ phải giết -9 nhiều lần cho đến khi nó chết.

Sau khi tất cả các quy trình trên tty đó không còn nữa, màn hình sẽ tiếp tục chính xác:

screen -r -d

-1

Loại bỏ màn hình chết với screen -wipe.


Tôi nghĩ đó là điều hoàn toàn trái ngược với những gì anh ấy đang cố gắng làm.
Chris S
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.