Reattach để mất phiên X11


27

Tôi đang sử dụng chuyển tiếp X11 sshđể chạy các ứng dụng Linux trên hộp Windows của mình và khi mạng bị rớt, nó sẽ mất mọi thứ đang chạy. Có điều gì tương tự screenvới X11 không?


Làm rõ. Tại sao không chỉ sử dụng screen? Hay là XVNC? Bạn chạy màn hình trên máy Linux và khi mạng của bạn bị rớt, hãy kết nối lại và sử dụng screen -DRđể gắn lại phiên.
nix

@nix Điều đó có hoạt động cho các ứng dụng X không?
Michael Mrozek

2
@nix Tôi không nghĩ rằng screenhoạt động cho các ứng dụng gui.
Abdullah Jibaly

Tất nhiên, màn hình sẽ yêu cầu chạy từ xterm.
nix

Câu trả lời:


32

Xpra hoặc ngã ba Xpra tuyên bố chính xác là:

Về cơ bản, nó là màn hình cho các ứng dụng X từ xa.

Tôi đã không sử dụng nó trong một thời gian, nhưng nó hoạt động khá tốt khi tôi thử nó. Bạn khởi động máy chủ trên máy từ xa:

[remote] $ xpra start :13

Sau đó, bạn đính kèm với máy chủ từ máy cục bộ của bạn:

[local] $ xpra attach ssh:remote:13

Và bây giờ mọi thứ hiển thị trên X hiển thị 13 trên máy từ xa sẽ xuất hiện cục bộ:

[remote] $ DISPLAY=:13 xeyes

4
Ngoài ra còn có WinSwitch , trong nháy mắt có vẻ như nó tích hợp xpra và các phần mềm liên quan khác.
Gilles 'SO- ngừng trở nên xấu xa'

6

Bạn đang tìm kiếm VNC . Nguyên tắc có phần giống với màn hình: bạn chạy máy chủ VNC ( SCREENquy trình backgound ) và máy khách VNC ( screenquy trình tiền cảnh ). Máy chủ VNC là máy chủ X, vì vậy bạn có thể chạy các ứng dụng X trong đó.

Chạy máy chủ VNC trên hộp Linux và máy khách trên hộp Windows. Bạn có một số triển khai để lựa chọn; một khả năng là chặt chẽ . TightVNC có trong nhiều bản phân phối Linux (nếu nó không phải của bạn, hãy cài đặt nó hoặc chọn một bản triển khai khác) và có một máy khách Windows.

Nếu hai máy của bạn không ở rất gần mạng - nếu có tường lửa hoặc có nguy cơ bị nghe trộm giữa chúng - bạn sẽ cần phải lưu lượng truy cập VNC thông qua ssh. Có ssh chuyển tiếp cổng cục bộ 5900 sang cổng từ xa 5900 (5900 tương ứng với màn hình :0, sử dụng 5901 cho :1, v.v.).


4

Trên thực tế, bạn có thể chuyển tiếp X vào screen. Chỉ có điều cần làm là thiết lập $DISPLAYtrong screencửa sổ để nó là mặt ra cùng của nó.

Thủ tục

Sau khi ssh -Xvào máy từ xa, gõ

$ echo $DISPLAY

và sao chép kết quả, thường localhost:N.0. Sau đó nhập screen, trong screencửa sổ cục bộ ,

$ export DISPLAY=localhost:N.0

Sau này, chạy bất kỳ Xchương trình cần thiết nào trong cửa sổ màn hình sẽ làm.

LƯU Ý: đối với mỗi screencửa sổ, các biến môi trường là độc lập. Vì vậy, đối với mỗi cửa sổ, bạn có thể cần phải thiết lập riêng.

Tài liệu tham khảo


1
Xin chào Chong, chào mừng bạn đến với unix.SE. Vì các chi tiết của giải pháp bạn liên kết rất đơn giản, tốt hơn hết là viết lại chúng một cách rõ ràng ở đây. Bằng cách này, câu trả lời được giữ nguyên nếu có gì đó xảy ra với bài đăng trên Askubfox.com. Tất nhiên, đó cũng là một ý tưởng tốt để giữ liên kết hiện tại vì nó giúp tìm nguồn tài liệu của bạn.
drs

2
Tôi đã thử giải pháp này, nhưng tôi không thể đóng phiên ssh của mình mà không tắt ứng dụng X đang chạy. Điều này bằng cách nào đó đánh bại mục đích của nó ... Tôi nên ngắt kết nối với máy chủ từ xa để ứng dụng từ xa chạy như thế nào?
Tonin
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.