Tôi nghĩ rằng bạn đang nhầm lẫn các công nghệ khác nhau và cách chúng hoạt động. Tôi không mong đợi rằng daemon thông báo từ một hệ thống có thể gửi tin nhắn qua SSH. Đặt cài đặt $DISPLAY
là cách X11 gửi đầu ra từ một ứng dụng sang một ứng dụng khác để hiển thị các mục đích, nhưng nó notify-send
đang gửi một thông điệp thực sự đến daemon thông báo. Tin nhắn này được gửi bằng libnotify
thư viện.
đoạn trích
libnotify là một thư viện gửi thông báo trên màn hình tới một daemon thông báo, như được định nghĩa trong thông số Thông báo trên Màn hình. Các thông báo này có thể được sử dụng để thông báo cho người dùng về một sự kiện hoặc hiển thị một số dạng thông tin mà không cần theo cách của người dùng.
Nguồn: https://developer.gnome.org/libnotify/
Mỗi cách tiếp cận ứng dụng
Một phương pháp để nối các notify-send
tin nhắn với trình thông báo hệ thống cục bộ của bạn là sử dụng một cách tiếp cận như được nêu trong bài đăng trên blog này có tiêu đề: Thông báo IRC thông qua SSH và libnotify . Cách tiếp cận này sẽ cần được tùy chỉnh theo từng loại thông báo mà bạn muốn chuyển trở lại trình thông báo cục bộ của mình.
Đường hầm libnotify qua SSH
Đối với một giải pháp tổng quát hơn libnotify-over-ssh
có thể là nhiều hơn những gì bạn đang tìm kiếm.
đoạn trích
Đây là một kịch bản perl máy chủ khách hàng tôi đã viết để máy chủ của tôi về cơ bản có thể gửi tin nhắn libnotify đến máy cục bộ của tôi. Tôi sử dụng chủ yếu với weechat nhưng có một tính năng để làm cho nó tổng quát hơn. Khi gọi máy khách bằng thẻ weechat, máy chủ sẽ kiểm tra tên của cửa sổ tập trung hiện tại. Nếu nó bắt đầu bằng weechat, thông báo sẽ bị chặn nếu không thông báo-gửi được gọi.
Hiển thị trên máy chủ từ xa
Nếu mặt khác, bạn chỉ đơn giản là cố gắng sử dụng notify-send
để hiển thị tin nhắn trên máy chủ từ xa mà bạn đã sử dụng ssh
để kết nối, thì có thể bạn sẽ cần phải làm theo một trong những gợi ý được đưa ra trong Hỏi & Đáp này có tiêu đề: Sử dụng thông báo gửi với cron . Mặc dù một số câu trả lời cho rằng điều này là không cần thiết, tôi đã phải làm như sau khi những người khác đề cập trong các nhận xét về hệ thống Fedora 20 của tôi sử dụng Cinnamon làm máy tính để bàn của tôi để mọi thứ hoạt động.
Để notify-send
làm việc, tôi phải đặt biến này với giá trị phù hợp từ môi trường máy tính để bàn của hệ thống từ xa.
$ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-wzrbFpDUZQ,guid=82e5bffe1f819506faecc77a53d3ba73
Trên hệ thống của mình, tôi đã có thể sử dụng một tệp được duy trì cho mục đích chính xác này.
$ ssh me@remote
$ source ~/.dbus/session-bus/6a34f24f9c504e3f813bc094ed0b67af-0
$ notify-send "hi"
LƯU Ý: Tên của tệp DBUS sẽ thay đổi từ phiên này sang phiên khác.
DISPLAY=:0 notify-send 'hello'
đã làm việc cho tôi (không phải cho aikeru), hãy thử điều đó trước các bước phức tạp hơn.