SSH で通知送信が機能しません。

SSH で通知送信が機能しません。

たぶん他の場所に答えがあるかもしれませんが、私はそれを見ることができません。

私はUbuntu 14.04を実行しています。 SSH経由で自分のコンピュータに接続するときは、次のようになります。

ssh <user>@<machineip> notify-send "Hello"

ログインしたコンピューターのモニターには何も表示されません。notify-send前にDISPLAY=:0.0or を付けるとDISPLAY=:0何も起こりません。現在のセッションでは通知はまったく表示されません。

これを行うために必要なトリック/スイッチはありますか?

これが明確でない場合は、もう一度強調します。コンピュータAからコンピュータBにSSHを実行します。 SSHセッション内でコンピュータBで実行されるように通知を送信したいと思います。コンピューターBのモニターに轟音通知が表示されます。

ベストアンサー1

さまざまな技術とその仕組みを混同しているようです。あるシステムの通知デーモンがSSH経由でメッセージを送信できるようにしたくありません。設定は、$DISPLAY表示目的でアプリケーションの出力を別のアプリケーションに送信するX11の方法ですが、notify-send実際のメッセージは通知デーモンに送信されます。このメッセージはlibnotifyライブラリを使用して送信されます。

抜粋

libnotifyは、デスクトップ通知仕様で定義されているように、通知デーモンにデスクトップ通知を送信するためのライブラリです。このような通知は、ユーザにイベントを知らせたり、ユーザを邪魔することなく任意の形式の情報を表示するために使用することができる。

源泉:https://developer.gnome.org/libnotify/

アプリケーション固有のメソッド

サインアップする1つの方法notify-sendは、次のブログ記事に記載されている方法を使用することです。SSHとlibnotifyによるIRC通知。この方法は、ローカル通知に再トンネリングしたい通知タイプごとにカスタマイズする必要があります。

SSHによるlibnotifyトンネルの設定

より一般的な解決策のためにlibnotify-over-sshあなたのニーズにもっと合うことができます。

抜粋

これは私のサーバーがデフォルトで私のローカルマシンにlibnotifyメッセージを送信できるように私が書いたクライアントサーバーPerlスクリプトです。主にウィチャットとして使用しますが、より多様に活用できる機能があります。 weechatタグを使用してクライアントを呼び出すと、サーバーは現在フォーカスがあるウィンドウの名前を解決します。 weechat で始まる場合、通知の送信が呼び出されないと通知は表示されません。

リモートサーバーに表示

一方、接続notify-sendに使用するリモートサーバーにメッセージを表示したい場合は、sshこのQ&Aに記載されている提案のいずれかに従うことができます。cronに通知を送信する。一部の回答ではこれは不要であることを示唆していますが、CinnamonをFedora 20システムでデスクトップとして使用している他の人の意見で述べたように、次のことを行う必要がありました。

作業を開始するには、notify-sendリモートシステムのデスクトップ環境で適切な値にこの変数を設定する必要があります。

$ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-wzrbFpDUZQ,guid=82e5bffe1f819506faecc77a53d3ba73

私のシステムでは、この目的のために維持されているファイルを利用できます。

$ ssh me@remote
$ source ~/.dbus/session-bus/6a34f24f9c504e3f813bc094ed0b67af-0
$ notify-send "hi"

メモ:DBUSファイルの名前はセッションごとに変更されます。

おすすめ記事