Cảm ơn @jensd, @unxnut đã giúp tôi. dựa trên ý kiến của bạn tôi đã có thể tìm ra vấn đề.
Giải pháp cần hai bước:
- biến HIỂN THỊ phải được đặt đúng.
- Khi ssh'ing đến máy chủ từ xa, công tắc -X phải được bật
những nỗ lực trước đây của tôi thiếu một hoặc cả hai điều kiện này.
Dù sao đi nữa, đối với những người dùng sau này xem đây là những ví dụ để cho bạn thấy những gì tôi đang cố gắng nói.
trường hợp 1
máy cục bộ của tôi sẽ không có bộ biến HIỂN THỊ. Và sau đó tôi sẽ ssh đến máy chủ từ xa với chuyển đổi -X và sau đó thử thực thi xclock
.
Black@Black-PC ~
$ echo $DISPLAY
## the blank means that DISPLAY variable has not been specified##
Black@Black-PC ~
$ ssh -X kwagjj@$labserver -p 122
Last login: Tue Jun 24 22:23:13 2014 from
[kwagjj@James5 ~]$ xclock
Error: Can't open display:
[kwagjj@James5 ~]$ setenv | grep $DISPLAY
DISPLAY: Undefined variable.
như bạn có thể thấy một lỗi Error: Can't open display:
được hiển thị tại thiết bị đầu cuối máy chủ từ xa.
trường hợp2
lần này, tại máy cục bộ, tôi sẽ chỉ định biến HIỂN THỊ. Nhưng khi tôi đang chạy, tôi sẽ không bật công tắc -X. Kết quả sẽ là một thất bại:
Black@Black-PC ~
$ export DISPLAY=:0.0
Black@Black-PC ~
$ echo $DISPLAY
:0.0
Black@Black-PC ~
$ ssh kwagjj@$labserver -p 122
Last login: Tue Jun 24 22:33:32 2014 from
[kwagjj@James5 ~]$ xclock
Error: Can't open display:
[kwagjj@James5 ~]$ setenv | grep DISPLAY
[kwagjj@James5 ~]$
Khi bắt đầu, bạn có thể thấy rằng tôi đã đặt đúng biến HIỂN THỊ. Nhưng ngay cả như vậy, sau khi ssh'ing (không có công tắc -X), xclock vẫn không được thực thi.
* Một kết quả khác với setenv | grep DISPLAY
có thể được nhìn thấy ở đây (so sánh với case1). trong case2, kết quả chỉ là trống. mặt khác, kết quả của case1 đối với dòng lệnh này là DISPLAY: undefined variable
.... Tôi không chắc sự khác biệt này được gây ra như thế nào nhưng tôi có một linh cảm liên quan đến việc bạn có hài lòng với điều kiện 1. hay 2 không .
trường hợp 3
lần này, tôi sẽ chỉ định chính xác biến HIỂN THỊ tại máy cục bộ và ssh đến máy chủ từ xa khi bật công tắc -X của tôi.
Black@Black-PC ~
$ echo $DISPLAY
:0.0
Black@Black-PC ~
$ ssh -X kwagjj@$labserver -p 122
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
Warning: No xauth data; using fake authentication data for X11 forwarding.
Last login: Tue Jun 24 22:37:27 2014 from
[kwagjj@James5 ~]$ xclock &
[1] 9174
[kwagjj@James5 ~]$ setenv | grep DISPLAY
DISPLAY=localhost:11.0
[kwagjj@James5 ~]$
với cài đặt này, xclock
hoạt động !! đây là một ảnh chụp màn hình để chứng minh rằng tôi không nói dối.
xclock được hiển thị thành công trong máy cục bộ của tôi.
Một lần nữa, kiểm tra kết quả setenv | grep DISPLAY
trong trường hợp này. Bây giờ nó cho thấy DISPLAY=localhost:11.0
. Từ những gì tôi biết, điều này có liên quan đến MIT-MAGIC-COOKIE trong tệp .Xmasterity nhưng vì tôi không biết nhiều về điều này nên tôi sẽ không đi xa hơn.
Kết luận: từ ba trường hợp trên, chúng tôi có thể xác nhận rằng để Windows X từ xa được hiển thị đúng, cả 1. Biến HIỂN THỊ của máy cục bộ và 2. -X
công tắc ssh phải được đặt đúng. Tất nhiên, máy chủ từ xa sẽ cho phép X11 tiến tới.