Masaüstü kullanıcılarına duvar mesajlarının gösterilmesinin bir yolu var mı?


9

Diyelim ki evden uzaktayım, ev bilgisayarımda ssh-ing. Herhangi bir nedenle, yeniden başlatılmasına ihtiyacım var.

# shutdown -r +10

Bu wall, her dakika boyunca bir uyarı mesajı gönderir ; bu, örneğin ailem tarafından normal masaüstü kullanımı için tamamen görünmezdir.

wallMesajların masaüstüne, örneğin bildirim yoluyla ulaşmasının herhangi bir yolu var mı ?


1
Bu yazının cevaplarındaki bilgiler sayesinde , tam da ihtiyacım olanı yapan bir Python programını birlikte hackleyebilirim . libnotify-binPakete bağlıdır .
badp

Yanıtlar:


8

İçerileri wallve öylesine engellenmiş ve kadim ki, mesajı bir kez oraya çekmenin hiçbir yolu yok.

Bunun için ortaya atılan tek gerçek fikir ( sorun daha önce tartışılmıştı , birçok kez) shutdownve rebootkomut dosyalarını değiştirmektir, böylece dbus yoluyla bir şey hazırlarlar ya da (sadece bir bilgisayar ve bir düzeltme ile uğraşırken) sadece bir bildir-gönder mesajı göndermesini isteyin.

Onlar vardır sadece hacklemek böylece sadece komut. Ama bence bu muhtemelen zorlamaya değer bir neden. Ubuntu'ya karşı bir hata gönderin ve yamalarınızı ekleyin (X ortamı yoksa bildirim göndermeye gerek kalmadan çalışabileceklerinden emin olun). İhtiyacımız olan bu tür kullanılabilirlik.

Daha önce hiç duymamıştım gxmessageama kullanırdım notify-send.

Tam bir çözüm birden fazla ekran (örneğin çok kafalı, uzak kullanıcılar, vb.) Olasılığını karşılamak gerekir ama neyse ki dün bu bit için bazı kod yazdı:

for display in `ps aux | grep -oE "/usr/bin/X\s[^ ]+" | cut -d " " -f 2`; do
    DISPLAY=$display notify-send -u critical 'Shutdown notice' 'Save all your work. THE SYSTEM IS GOING DOWN!!' -i /usr/share/pixmaps/gnome-computer.png
done

(Bir -displayveya --displaybayrak yerine dışa aktarma kullanıyorum çünkü bunun da gerekmediğini bilmiyorum notify-send)


gxmessage eski bir uygulama. dbus düşünmeye gel ve bildir-gönder çok daha iyi bir seçenek. Belki zenity ile bir şey çalışabilirim.
Kasım'da

Evet, neyin en iyi olduğundan emin değilim. zenityçıkış yapmadan önce bir şeyleri kaydetmek için uğraşıyorsanız uyarılar can sıkıcı notify-sendolabilir ... Ancak bildirimler yok sayılabilir.
Oli

1
Bildirme-gönderme bildiriminin göz ardı edilebileceği doğrudur, ancak birkaç kez (örneğin 10 dakika) görüntülenirse işi yapabilirler!
OpenNingia

@Oli, bunun çalışması için doğru ayarlanmış XAUTHORITY ortam değişkenine de ihtiyacınız olduğunu buldum.
badp

1
DISPLAY=$display notify-send...bu komut için yalnızca DISPLAY değerini dışa aktarır; burada önemli değil, ama başka bir yerde ve IMHO, biraz daha temiz.

2

Zenity kullanarak manuel olarak mesaj gönderebilirsiniz

zenity --warning --text "badp's about to restart the computer" --display=:0

Tabii ki, bunu bir senaryoya dahil edebilirsiniz.


Süper kullanıcı olarak bile ekranı açamıyorum (doğru kullanıcı olarak sudo
yapmalıyım


olamaz, ayrıca XAUTHORITY ortam değişkeninin doğru ayarlanmış olması gerekir.
badp

1

Bir ptty'yi yazıp yazılı mesajları (yazma veya duvardan) dinleyen ve daha sonra bunu bir GUI çıktısına ileten bir komut dosyası yazabilmelisiniz.


0

AFAIK, wall komutunun bu mesajı grafiksel bir ortamda göstermesi için X istemcisi yoktur. Açılır pencereleri görüntülemek için gxmessage uygulamasını kullanabilirsiniz, ancak komut dosyasını kendiniz yazmanız gerekir.

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.