Vielleicht wird das woanders beantwortet, aber ich habe es nicht gesehen.
Ich verwende Ubuntu 14.04. Wenn ich SSH in meinen Computer einbinde, zum Beispiel:
ssh <user>@<machineip> notify-send "Hello"
Ich sehe nichts auf dem Monitor, auf dem ich am Computer angemeldet bin. Wenn ich das Präfix notify-send
mit DISPLAY=:0.0
oder DISPLAY=:0
nichts anderes passiert. Ich sehe nur nie eine Benachrichtigung in der aktuellen Sitzung.
Gibt es einen Trick / Schalter, um dies zum Laufen zu bringen?
Falls dies nicht klar ist, erlauben Sie mir Folgendes zu wiederholen: Von Computer A, I SSH in Computer B. Innerhalb der SSH-Sitzung möchte ich notify-send ausführen, um es auf Computer B auszuführen. Ich erwarte, dass eine Benachrichtigung vom Typ Knurren angezeigt wird auf dem Monitor von Computer B.
DISPLAY=:0 notify-send 'hello'
die für mich gearbeitet haben (nicht für aikeru), versuchen Sie dies vor komplizierteren Schritten.Antworten:
Ich denke, Sie verwirren die verschiedenen Technologien und wie sie funktionieren. Ich würde nicht erwarten, dass der Benachrichtigungsdämon von einem System Nachrichten über SSH senden könnte. Wenn Sie festlegen,
Auszug$DISPLAY
wie X11 die Ausgabe einer Anwendung zu Anzeigezwecken an eine anderenotify-send
sendet, wird eine tatsächliche Nachricht an den Benachrichtigungsdämon gesendet. Diese Nachricht wird über dielibnotify
Bibliothek gesendet .Quelle: https://developer.gnome.org/libnotify/
Per App Ansatz
Eine Methode zum Verknüpfen der
notify-send
Nachrichten mit dem Notifier Ihres lokalen Systems besteht darin, einen Ansatz zu verwenden, der in diesem Blog-Beitrag mit dem Titel IRC-Benachrichtigungen über SSH und libnotify beschrieben wird . Dieser Ansatz muss für jede Art von Benachrichtigung angepasst werden, die Sie zu Ihrem lokalen Benachrichtiger zurücktunneln möchten.Tunneling libnotify über SSH
Für eine allgemeinere Lösung
Auszuglibnotify-over-ssh
kann mehr sein, was Sie suchen.Anzeige auf dem Remote-Server
Wenn Sie andererseits lediglich versuchen,
notify-send
Nachrichten auf einem Remote-Server anzuzeigen, zu dem Siessh
eine Verbindung hergestellt haben, müssen Sie wahrscheinlich einem der Vorschläge folgen, die in dieser Frage und Antwort mit dem Titel " Verwenden von Benachrichtigen-Senden" gemacht wurden mit cron . Obwohl einige der Antworten darauf hinwiesen, dass dies unnötig war, musste ich Folgendes tun, wie andere in den Kommentaren zu meinem Fedora 20-System erwähnt haben, wobei Cinnamon als Desktop verwendet wurde, um die Dinge zum Laufen zu bringen.Um
notify-send
arbeiten zu können, musste ich diese Variable mit dem entsprechenden Wert aus der Desktop-Umgebung des Remote-Systems festlegen.Auf meinem System konnte ich eine Datei verwenden, die genau für diesen Zweck gepflegt wurde.
ANMERKUNG: Der Name der DBUS-Datei ändert sich von Sitzung zu Sitzung.
quelle
notify-send
kann Nachrichten an den Listening Notifier Daemon senden. Wenn Sie sich über SSH anmelden, verfügt diese Umgebung nicht über die erforderlichen Informationen, um mit diesem Benachrichtiger zu kommunizieren. Dies ist das zugrunde liegende Problem.$DISPLAY=:0
funktionieren würde, aber das funktioniert auch bei mir nicht. Ich bin auf Fedora 20 und verwende Cinnamon als Desktop. Die Verwendungstrace
zum Debuggen zeigt, dass es eine Verbindung gibt, die beim Durchlaufen von SSH nicht hergestellt wird, und untersucht immer noch, was dies blockiert.IMO, vielleicht könnten Sie verwenden:
Dies setzt natürlich voraus, dass ": 0" der tatsächliche Wert der DISPLAY-Variablen ist, wenn dies der einzige Benutzer ist, der derzeit angemeldet ist. Ich denke, wir müssen hier das spezielle Wort "export" verwenden, da wir zwei Befehle senden und exportieren Die Variable, die für den zweiten Befehl "notify-send" verwendet werden kann. Mit den Zeichen "&&" können wir die beiden Befehle einfach in einer Zeile starten.
quelle