Bu konu biraz eski, üzgünüm, ama umarım yine de konuya faydalı bir şeyler ekleyebilirim. (ayrıca Josef Kufner güzel bir senaryo yazdı, benim zevkime göre biraz uzun ve PHP kullanıyor)
Ayrıca orijinal soruda açıklandığı gibi bir araca ihtiyacım vardı (tüm aktif X kullanıcılarına mesaj göndermek için). Ve buradaki cevaplara dayanarak, aktif X kullanıcılarını ('kim' kullanarak) arayan ve daha sonra her aktif kullanıcı için bildir-gönder çalıştıran bu küçük bash-script'i yazdım.
Ve en iyisi: betiğimi tüm parametreleriyle "notify-send" gibi kullanabilirsiniz! ;-)
bildirmek-send-hepsi:
#!/bin/bash
PATH=/usr/bin:/bin
XUSERS=($(who|grep -E "\(:[0-9](\.[0-9])*\)"|awk '{print $1$5}'|sort -u))
for XUSER in $XUSERS; do
NAME=(${XUSER/(/ })
DISPLAY=${NAME[1]/)/}
DBUS_ADDRESS=unix:path=/run/user/$(id -u ${NAME[0]})/bus
sudo -u ${NAME[0]} DISPLAY=${DISPLAY} \
DBUS_SESSION_BUS_ADDRESS=${DBUS_ADDRESS} \
PATH=${PATH} \
notify-send "$@"
done
Yukarıdaki kodu "notify-send-all" adlı bir dosyaya kopyalayın, çalıştırılabilir yapın ve / usr / local / bin veya / usr / bin (istediğiniz gibi) üzerine kopyalayın . Sonra, örneğin böyle bir konsol oturumunda root olarak çalıştırın:
notify-send-all -t 10000 "Warning" "The hovercraft is full of eels!"
Birkaç ay, farklı makinelerde kullanıyorum ve şimdiye kadar hiç problem yaşamadım ve MATE ve Cinnamon masaüstü bilgisayarlarıyla test ettim. Ayrıca başarıyla cron ve anacron içinde çalışıyor.
Bu komut dosyasını ArchLinux için / altında yazdım, bu yüzden lütfen başka bir Linux dağıtımında veya masaüstünde sorun yaşıyorsanız bana bildirin.