Tôi đang cố gắng chạy các ứng dụng Gnome khác nhau thông qua X11 Forwarding và SSH. Một số ứng dụng sẽ khiến ứng dụng 'dbus-launch' được sinh ra đầu tiên. Vấn đề là dbus-launch không đóng khi thoát ứng dụng X và do đó phải bị hủy trước khi phiên SSH có thể được đóng đúng cách.
Tôi giả sử vấn đề là các ứng dụng X / Gnome không thể kết nối với trình nền bus tin nhắn chính và do đó phải khởi chạy bản sao của chính chúng? Làm thế nào tôi có thể sửa lỗi này? Hay tôi còn thiếu gì?
Đây là một ví dụ. Tôi đã bật X11 Forwarding, tất cả dường như hoạt động tốt.
[me@host ~]$ gnome-calculator &
[1] 4803
(ở đây chương trình gcalctool khởi chạy và được hiển thị cho máy chủ X loại bỏ của tôi (Xming))
[me@host ~]$ ps
PID TTY TIME CMD
4706 pts/0 00:00:00 bash
4803 pts/0 00:00:00 gnome-calculator
4807 pts/0 00:00:00 dbus-launch
4870 pts/0 00:00:00 ps
(bây giờ, sau khi đóng ứng dụng gcalctool trong phiên từ xa)
[me@host ~]$ ps
PID TTY TIME CMD
4706 pts/0 00:00:00 bash
4807 pts/0 00:00:00 dbus-launch
4898 pts/0 00:00:00 ps
Lưu ý rằng dbus-launch vẫn hoạt động. Và phần tồi tệ nhất, điều này ngăn kết nối SSH đóng lại cho đến khi nó bị giết.
Lưu ý rằng trình nền tin nhắn toàn hệ thống đang chạy, như có thể thấy ở đây:
[me@host ~]$ ps ax
4696 ? Ssl 0:00 dbus-daemon --system
Tôi đang thiếu gì ở đây? Tôi chưa bao giờ thấy hành vi này trước đây. Có lẽ, tôi chỉ từng thấy các ứng dụng có thể kết nối với daemon tin nhắn không bị cản trở? Tôi đã xem trong / etc / dbus-1 để tìm câu trả lời, nhưng không biết phải tìm gì.
Xin được cảm ơn trước về sự giúp đỡ.
[CHỈNH SỬA]
OK, tôi nhận ra rằng tôi đang gặp một vấn đề phổ biến. Có vẻ như đây là một hành vi khá phổ biến, nhưng không có giải pháp tốt. Tôi đang gặp sự cố treo SSH vì dbus-launch vẫn hoạt động trong tty. Nhưng dường như không có cách nào tốt để khiến dbus-launch diễn ra lặng lẽ.
Nhìn vào /etc/X11/xinit/xinitrc.d/00-start-message-bus.sh sẽ đưa ra một số manh mối về những gì được cho là xảy ra với phiên X "bình thường". Điều này tất nhiên không hoạt động khi chỉ gọi một ứng dụng X đến X Server từ xa.
Như một cách giải quyết tạm thời, tôi đã thêm phần này vào .bash_logout của mình:
# ~/.bash_logout
pkill -u $USER -t `tty | cut -d '/' -f 3,4` dbus-launch
Điều này sẽ cho phép phiên SSH đóng, nhưng nó cảm thấy không ổn. Có giải pháp nào tốt hơn ngoài kia không? Cách thích hợp để chạy các ứng dụng X11 từ xa mà không cần dbus cản trở?