Có cách nào để làm cho một phiên làm việc trên màn hình có thể tồn tại khi khởi động lại không?


25

Tôi đang sử dụng tiện ích Màn hình và muốn duy trì phiên khi máy khởi động lại. Nếu không thể, bạn có thể đề xuất các lựa chọn thay thế khác cho Màn hình cho phép duy trì các phiên giữa các lần khởi động lại.

Tôi đang sử dụng Ubuntu Server 10.04 (Lucid Lynx) nếu có vấn đề.

Tôi có một vài phiên được mở qua Màn hình. Khi máy khởi động lại, tất cả các phiên đó đều bị mất và tôi phải mở lại chúng. Tôi muốn tìm một cách để bảo tồn các phiên Màn hình đó.


bạn đang cố gắng làm gì Bạn có muốn lưu giữ lịch sử hoặc mọi thứ đang chạy trong phiên màn hình của mình không?
Marcel G

1
Sẽ không làm điều này đánh bại mục đích khởi động lại?
Brian Knoblauch

"Phiên" nghĩa là gì? Bạn có nghĩa là bạn có kết nối ssh với các máy chủ khác trong một số cửa sổ màn hình? Nếu đó là ý của bạn, thì hãy viết tệp .screenrc và chỉ định người dùng @ host mà bạn muốn slogin để thực hiện thủ thuật ..., nếu bạn đã bật đăng nhập không mật khẩu ssh. Sau đó, khi bạn bắt đầu màn hình, tất cả các kết nối ssh sẽ tự động bắt đầu. Bạn thậm chí có thể khởi động nó từ RC.local (một chút khó khăn, vì bạn cần khởi động nó từ su - tên người dùng của bạn), vì vậy khi bạn đăng nhập, bạn có thể gắn lại phiên màn hình đang chạy.
natxo asenjo

1
quan trọng hơn, tại sao bạn luôn khởi động lại? Các máy chủ Unix không phải là máy chủ windows, chúng được thiết kế cho thời gian hoạt động cao, các máy được biết là có thời gian tăng trong nhiều năm (không có bản vá bảo mật kernel). Nếu bạn khởi động lại do các bản vá bảo mật kernel, thì hãy xem cái gì đó như ksplice.
Unix Janitor

Câu trả lời:


16

Trước hết, hãy làm rõ một vài điều quan trọng:

  1. Có bao nhiêu máy tham gia? Nói cách khác, bạn đang kết nối với một máy từ xa, hay tất cả mọi thứ trên máy cục bộ của bạn?
  2. Nếu có một máy từ xa liên quan, máy nào đang khởi động lại: đó là máy chủ hay máy khách?

Nếu có một máy liên quan hoặc nếu máy chủ đang được khởi động lại, thì bạn hầu như không gặp may.

Nếu bạn đang đăng nhập vào một máy từ xa, nhưng cần khởi động lại máy cục bộ thì không vấn đề gì miễn là bạn đang chạy màn hình trên máy từ xa thay vì máy cục bộ. Tôi nhận ra điều này khá rõ ràng đối với bất kỳ người dùng màn hình nào (thậm chí hơi có kinh nghiệm), nhưng tôi đề cập đến nó chỉ trong trường hợp nó có thể hữu ích.

Một khả năng khác (một lần nữa, việc này có hữu ích cho bạn hay không tùy thuộc vào hoàn cảnh của bạn) là chạy máy có màn hình trên máy ảo. Giả sử đó là một máy chủ vật lý từ xa và nó cần được khởi động lại, nhưng nó đã có một hệ điều hành khách trên (ví dụ) VMware. Bạn có thể tạm dừng HĐH khách và khởi động lại sau khi phần cứng khởi động lại. Tất cả phụ thuộc vào lý do tại sao bạn cần khởi động lại, điều không được chỉ định và mức độ kiểm soát của bạn đối với máy và liệu bạn có sẵn sàng giải quyết tất cả những rắc rối đó không.

Không có giải pháp DỄ DÀNG, và có thể không có giải pháp nào phù hợp với bạn. Nhưng tốt nhất của may mắn.

Nếu bạn đang đăng nhập vào nhiều máy, việc chạy màn hình trên tất cả các máy từ xa có vẻ như quá đau đớn. Trong trường hợp này, thật hữu ích khi có một máy trung gian chạy màn hình, có thể có nhiều cửa sổ màn hình, mỗi cửa sổ được đăng nhập vào một máy từ xa khác. Miễn là máy trung gian vẫn hoạt động, bạn có thể khởi động lại máy cục bộ của riêng mình (hoặc đóng gói trong túi và mang về nhà vào ban đêm, hoặc bất cứ điều gì) và màn hình tiếp tục chạy trên máy trung gian. (Và rõ ràng nếu bất kỳ máy từ xa nào bị hỏng, bạn sẽ mất kết nối với máy đó, nhưng phần còn lại của các phiên trên màn hình của bạn vẫn ổn.)

Nhưng rất có thể bạn đang đề cập đến máy từ xa hoặc máy duy nhất được khởi động lại, trong trường hợp đó không có cách nào đơn giản để làm điều này. Ban đầu CryoPID có vẻ hứa hẹn, nhưng trang web của nó nói rằng nó không hoạt động cho màn hình.

Nhưng có một lựa chọn có phần hứa hẹn khác đáng để khám phá. (Cho dù nó sẽ làm việc cho bạn phụ thuộc đến một mức độ lớn chính xác những gì bạn đang cố gắng để làm.) Hãy kiểm tra này trên github.com: https://github.com/skoneka/screen-session/tree/master/ScreenSession/


+1 cho cryoPID, không biết về điều đó!
Unix Janitor

ScreenSession có vẻ thú vị, từ mô tả của nó, đây chính xác là những gì tôi muốn
Sergey G

5

Trong một số trường hợp hiếm hoi, điều này là có thể (xem CryoPID hoặc CryoPID2 ), nhưng nói chung điều này rất khó, vì vậy không thể thực hiện được.


Liên kết bị hỏng.
kasperd

4

Thay vì sử dụng màn hình, hãy sử dụng một VM Virtualbox nhỏ và hoạt động bên trong đó. Sau đó, bạn có thể ngủ đông nó, khởi động lại máy chủ, sau đó đánh thức VM trở lại (giống như đóng và mở lại nắp máy tính xách tay). Kết nối SSH đến các máy chủ từ xa có thể sẽ không tồn tại bằng phương pháp này, tôi không nghĩ có thể đảm bảo điều đó.


Thật ra tôi muốn cập nhật câu trả lời của mình cho sự hồi sinh của tmux
Gaius

tmux-resurrect trông giống như một giải pháp rất tốt.
phục vụ


1

Trong tất cả những điều này, màn hình chính nó là khá nhỏ. Đó không phải là Màn hình mà bạn muốn "lưu", phải không?, Mà là các môi trường trong các phiên màn hình khác nhau, bất kể chúng là gì.

Có vẻ như bạn đang đề xuất rằng việc lưu phiên Màn hình sẽ bao gồm một quy trình SSH bên trong nó và tất cả các loại. Những gì đang chạy bên trong Màn hình hoàn toàn không phải là việc của Screen và đó là những điều khó có thể "cứu" ... bất cứ điều gì thực sự có nghĩa là nếu có thể thực hiện được.

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.