Może odpowiedź na to pytanie jest gdzie indziej, ale nie widziałem tego.
Używam Ubuntu 14.04. Kiedy SSH do mojego komputera, na przykład:
ssh <user>@<machineip> notify-send "Hello"
Nic nie widzę na monitorze, na którym jestem zalogowany do komputera. Jeśli prefiks notify-send
z DISPLAY=:0.0
lub DISPLAY=:0
nic nie różni się dzieje. Po prostu nigdy nie widzę żadnego powiadomienia o bieżącej sesji.
Czy jest jakiś trik / przełącznik, żeby to zadziałało?
W przypadku, gdy nie jest to jasne, pozwól mi powtórzyć: Z komputera A przesyłam SSH do komputera B. W sesji SSH chcę wykonać powiadomienie-wyślij, aby uruchomić na komputerze B. Oczekuję, że pojawi się powiadomienie typu warczenie na monitorze komputera B.
DISPLAY=:0 notify-send 'hello'
pracował dla mnie (nie dla aikeru), spróbuj tego przed bardziej skomplikowanymi krokami.Odpowiedzi:
Myślę, że mylisz różne technologie i ich działanie. Nie spodziewałbym się, że demon powiadomień z jednego systemu może wysyłać wiadomości przez SSH. Ustawianie
fragment$DISPLAY
sposobu, w jaki X11 wysyła dane wyjściowe z aplikacji do innej w celu wyświetlenia, alenotify-send
wysyła rzeczywistą wiadomość do demona powiadomień. Ta wiadomość jest wysyłana za pomocąlibnotify
biblioteki.Źródło: https://developer.gnome.org/libnotify/
Podejście według aplikacji
Jedną z metod dołączania
notify-send
wiadomości do powiadamiającego systemu lokalnego jest zastosowanie podejścia opisanego w tym poście na blogu: Powiadomienia IRC za pośrednictwem SSH i libnotify . To podejście należy dostosować do każdego rodzaju powiadomienia, które chcesz tunelować z powrotem do lokalnego powiadamiającego.Tunelowanie libnotify przez SSH
Bardziej ogólne rozwiązanie
fragmentlibnotify-over-ssh
może być tym, czego szukasz.Wyświetlanie na zdalnym serwerze
Jeśli z drugiej strony po prostu próbujesz
notify-send
wyświetlić wiadomości na zdalnym serwerze, z którymssh
się łączyłeś, prawdopodobnie będziesz musiał zastosować się do jednej z sugestii podanych w tym pytaniu zatytułowanym: Korzystanie z wysyłania powiadomień z cronem . Chociaż kilka odpowiedzi sugerowało, że nie było to konieczne, musiałem wykonać następujące czynności, jak wspomniano w komentarzach do mojego systemu Fedora 20, używając Cinnamon jako pulpitu, aby wszystko działało.Aby zacząć
notify-send
działać, musiałem ustawić tę zmienną z odpowiednią wartością ze środowiska pulpitu systemu zdalnego.W moim systemie mogłem skorzystać z pliku, który jest utrzymywany w tym właśnie celu.
UWAGA: Nazwa pliku DBUS zmieni się w zależności od sesji.
źródło
notify-send
może wysyłać wiadomości do demona powiadamiającego nasłuchującego. Podczas logowania przez SSH to środowisko nie ma informacji niezbędnych do komunikowania się z tym powiadomieniem, jest to podstawowy problem.$DISPLAY=:0
działałoby, ale to też nie działa dla mnie. Korzystam z Fedory 20 i używam Cinnamon jako pulpitu. Użyciestrace
do debugowania pokazuje, że istnieje połączenie, które nie zostaje wykonane podczas przechodzenia przez SSH, wciąż badając, co to blokuje.IMO, być może możesz użyć:
To oczywiście zakładając, że „: 0” jest rzeczywistą wartością zmiennej DISPLAY, jeśli jest to jedyny zalogowany użytkownik. Myślę, że musimy tutaj użyć słowa specjalnego „eksportuj”, ponieważ wysyłamy dwie komendy i eksportujemy zmienna, którą będzie można użyć dla drugiego polecenia „powiadom-wyślij”. Znaki „&&” pozwalają nam po prostu uruchomić dwa polecenia w jednym wierszu.
źródło