bildir-gönder ssh altında çalışmıyor


10

Belki bu başka bir yerde cevaplanır, ama görmedim.

Ubuntu 14.04 kullanıyorum. Makineme SSH yaptığımda, örneğin:

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

Monitörde makineye giriş yaptığım bir şey görmüyorum. Eğer önek notify-sendile DISPLAY=:0.0ya da DISPLAY=:0farklı bir şey olursa. Geçerli oturumda hiç bildirim görmedim.

Bunun işe yaraması için bir hile / geçiş var mı?

Bu net değilse, tekrarlamama izin verin: A Bilgisayarından I SSH'yi B Bilgisayarına B Bilgisayarının monitöründe.


Bunu Google üzerinden en iyi sonuç olarak gören diğer insanlar DISPLAY=:0 notify-send 'hello'için, benim için çalıştı (aikeru için değil), daha karmaşık adımlardan önce bunu deneyin.
Mark

Yanıtlar:


9

Bence çeşitli teknolojileri ve bunların nasıl çalıştığını karıştırıyorsunuz. Bir sistemden gelen bildirim arka plan programının SSH yoluyla mesaj gönderebilmesini beklemezdim. Ayar $DISPLAYX11 görüntüleme amacıyla başka bir uygulamadan çıktı gönderen nasıl olduğunu, ancak notify-sendbildirim cini gerçek bir mesaj gönderiyor. Bu mesaj libnotifykütüphane kullanılarak gönderilir .

alıntı

libnotify, Masaüstü Bildirimleri spesifikasyonunda tanımlandığı gibi bir bildirim arka planına masaüstü bildirimleri gönderen bir kütüphanedir. Bu bildirimler, kullanıcıyı bir olay hakkında bilgilendirmek veya kullanıcının yoluna girmeden bir tür bilgi görüntülemek için kullanılabilir.

Kaynak: https://developer.gnome.org/libnotify/

Uygulama başına yaklaşım

Katılmak için bir yöntem notify-send: Yerel sistemin bildirimde bulunan mesajlar bu blog yazısı başlıklı tarafından belirtildiği gibi bir yaklaşım kullanmaktır SSH ile IRC bildirimleri ve libnotify . Bu yaklaşımın, yerel bildirimcinize geri tünel oluşturmak istediğiniz her bildirim türü için özelleştirilmesi gerekir.

SSH üzerinden tünel açma

Daha genel bir çözüm libnotify-over-sshiçin aradığınız şey daha fazla olabilir.

alıntı

Bu, sunucumun temel olarak yerel makineme libnotify mesajları gönderebilmesi için yazdığım bir istemci sunucusu perl betiğidir. Bunu ağırlıklı olarak weechat ile kullanıyorum ama daha genel bir özelliği var. İstemciyi weechat etiketi ile çağırırken, sunucu geçerli odaklanmış pencerenin adını kontrol eder. Weechat ile başlıyorsa, notify-send çağrılmazsa bildirimler bastırılır.

Uzak sunucuda görüntüleme

Otherhand sadece kullanmaya çalışıyorsanız üzerinde ise notify-sendkullandığınız bir uzak sunucuda iletileri görüntülemek için ssh, bağlanmaya olasılıkla başlıklı bu Q & A yapıldığını önerilerden birini takip etmek gerekir: kullanma bildirmek-send cron ile . Yanıtların birçoğu bunun gereksiz olduğunu düşünse de, Fedora 20 sistemimdeki şeylerin çalışmasını sağlamak için masaüstüm olarak Tarçın kullanan Fedora 20 sistemindeki yorumlarda belirtildiği gibi aşağıdakileri yapmak zorunda kaldım.

Çalışabilmek için notify-sendbu değişkeni uzak sistemin masaüstü ortamından uygun bir değerle ayarlamam gerekiyordu.

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

Sistemimde bu amaç için saklanan bir dosyayı kullanabildim.

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

NOT: DBUS dosyasının adı oturumdan oturuma değişir.


Hmmm .. Biraz açıklama ekledim. Sanırım SSH üzerinden mesaj göndermek istemiyorum. Notify-send'i ana bilgisayar (istemci değil) bilgisayarına etkileşimli olarak çalıştırabileceğim bir terminal uygulaması olarak düşünüyorum. Sanırım anlıyorum - bildir-gönder ana makinede kendi başına bir istemci - söylediğiniz şey bu. Bu bir şekilde bunun bir SSH oturumunda yapmanın mümkün olmadığı anlamına mı geliyor? Unutmayın, bunu SSH istemcisinde, yalnızca SSH ana bilgisayarında / sunucusunda görünmeye çalışmıyorum.
aikeru

@aikeru - notify-senddinleme bildirim arka plan programına mesaj gönderebilir. SSH üzerinden giriş yaptığınızda, bu ortam bu bildirici ile iletişim kurmak için gerekli bilgiye sahip değildir, temel sorun budur.
slm

Mevcut ortama veya buna benzer bir şeye bağlanmanın herhangi bir yolu var mı, öyle ki gerekli bilgiye sahip olacak mı?
aikeru

@aikeru - bulduğum şeylerin çoğu, ayarın $DISPLAY=:0işe yarayacağını gösteriyor, ancak bu benim için de çalışmıyor. Masaüstüm olarak Tarçın kullanarak Fedora 20 kullanıyorum. straceHata ayıklamak için kullanılması , SSH'den geçerken yapılmayan bir bağlantı olduğunu gösterir ve yine de bunu neyin engellediğini araştırır.
slm

@aikeru - güncellemelere bakın.
slm

0

IMO, belki kullanabilirsiniz:

ssh user@host 'export DISPLAY=:0 && notify-send "test message"'

Tabii ki şu an ": 0" varsa DISPLAY değişkeninin gerçek değeridir, eğer o anda oturum açmış olan tek kullanıcı ise. Sanırım burada "export" özel kelimesini kullanmalıyız çünkü iki komut gönderiyoruz ve ikinci komut "notify-send" için kullanılabilecek değişken olacaktır. "&&" karakterleri iki komutu tek bir satırda başlatmamıza izin verir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.