我想使用PCA通过SSH向PCB发送通知,但在B上没有看到通知。
ssh user_name@B_ip 'notify-send hello'
我也试过这个:在B上使用SSH登录A,然后重新登录B,然后发送通知。但仍然无效。在B上也没有看到通知。
5t7ly7z51#
必须设置 DISPLAY 变量
DISPLAY=:0.0 notify-send hello
有关此变量的一些信息,请参见this。
pxyaymoc2#
通知是通过dbus(用户会话)发送的。您需要在SSH上建立dbus套接字的隧道,以便在另一台计算机上运行的程序可以向您的桌面发送通知。工作流程为:1.向本地TCP端口公开dbus套接字(仅可从localhost获得)1.在远程计算机上反向隧道此本地TCP端口(使用SSH)1.在远程计算机上,将此TCP端口公开为抽象套接字1.告诉notify-send要连接哪个dbus会话(创建的抽象套接字)@local代表您的桌面,而@remote代表您ssh的目的机器。1.将本地端口:7272转发到dbus抽象套接字(稍后将使用guid)
@local $ echo $DBUS_SESSION_BUS_ADDRESS unix:abstract=/tmp/dbus-pH1JnDeLNA,guid=5fe0907d81e722390f1ce02d6033ad76 @local $ socat TCP-LISTEN:7272,reuseaddr,fork ABSTRACT-CONNECT:/tmp/dbus-pH1JnDeLNA
1.从远程主机恢复转发端口7272(替换$REMOTE_HOSTNAME)
@local $ ssh -R localhost:7272:localhost:7272 $REMOTE_HOSTNAME
1.将抽象套接字转发到localhost:7272
@remote $ socat ABSTRACT-LISTEN:/tmp/custom_dbus_name,fork TCP:localhost:7272
1.启动通知-发送
@remote $ export DBUS_SESSION_BUS_ADDRESS='unix:abstract=/tmp/custom_dbus_name,guid=5fe0907d81e722390f1ce02d6033ad76' @remote $ notify-send "Hello, World"
xienkqul3#
用于在现代发行版(Debian 9及更新版本)中为当前用户显示远程机器上的通知。
export DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus notify-send "Test Test" "testing..."
DISPLAY(显示)可能与Wayland不同或未设置。
3条答案
按热度按时间5t7ly7z51#
必须设置 DISPLAY 变量
有关此变量的一些信息,请参见this。
pxyaymoc2#
通知是通过dbus(用户会话)发送的。您需要在SSH上建立dbus套接字的隧道,以便在另一台计算机上运行的程序可以向您的桌面发送通知。
工作流程为:
1.向本地TCP端口公开dbus套接字(仅可从localhost获得)
1.在远程计算机上反向隧道此本地TCP端口(使用SSH)
1.在远程计算机上,将此TCP端口公开为抽象套接字
1.告诉notify-send要连接哪个dbus会话(创建的抽象套接字)
@local代表您的桌面,而@remote代表您ssh的目的机器。
1.将本地端口:7272转发到dbus抽象套接字(稍后将使用guid)
1.从远程主机恢复转发端口7272(替换$REMOTE_HOSTNAME)
1.将抽象套接字转发到localhost:7272
1.启动通知-发送
xienkqul3#
用于在现代发行版(Debian 9及更新版本)中为当前用户显示远程机器上的通知。
DISPLAY(显示)可能与Wayland不同或未设置。