ฉันใช้ Arch Linux กับ KDE / Awesome WM ฉันพยายามที่จะได้รับ
ในการทำงานด้วยnotify-send
cron
ฉันได้ลองตั้งค่าDISPLAY
/ XAUTHORITY
ตัวแปรและใช้งานnotify-send
ด้วย "sudo -u" โดยไม่มีผลลัพธ์
ฉันสามารถโทรแจ้ง - ส่งแบบโต้ตอบจากเซสชันและรับการแจ้งเตือน
FWIW งาน cron ทำงานได้ดีซึ่งฉันตรวจสอบโดยการสะท้อนสิ่งที่เป็นไฟล์ชั่วคราว มันเป็นเพียง "แจ้ง - ส่ง" ที่ล้มเหลวในการทำงาน
รหัส:
[matrix@morpheus ~]$ crontab -l
* * * * * /home/matrix/scripts/notify.sh
[matrix@morpheus ~]$ cat /home/matrix/scripts/notify.sh
#!/bin/bash
export DISPLAY=127.0.0.1:0.0
export XAUTHORITY=/home/matrix/.Xauthority
echo "testing cron" >/tmp/crontest
sudo -u matrix /usr/bin/notify-send "hello"
echo "now tested notify-send" >>/tmp/crontest
[matrix@morpheus ~]$ cat /tmp/crontest
testing cron
now tested notify-send
[matrix@morpheus ~]$
ในขณะที่คุณสามารถเห็นเสียงสะท้อนก่อน & หลังแจ้งเตือน - ส่งงาน
นอกจากนี้ฉันได้ลองตั้งค่าDISPLAY=:0.0
อัปเดต: ฉันค้นหาอีกเล็กน้อยและพบว่าจำเป็นต้องตั้งค่าDBUS_SESSION_BUS_ADDRESS และหลังจากฮาร์ดโค้ดนี้โดยใช้ค่าที่ฉันได้รับจากเซสชันแบบโต้ตอบข้อความ "สวัสดี" เล็ก ๆ ก็เริ่มโผล่ขึ้นมาบนหน้าจอทุกนาที!
แต่การจับคือตัวแปรนี้ไม่ถาวรต่อโพสต์นั้นดังนั้นฉันจะลองใช้วิธีแก้ปัญหาไพพ์ที่มีชื่อที่แนะนำ
[matrix@morpheus ~]$ cat scripts/notify.sh
#!/bin/bash
export DISPLAY=127.0.0.1:0.0
export XAUTHORITY=/home/matrix/.Xauthority
export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-BouFPQKgqg,guid=64b483d7678f2196e780849752e67d3c
echo "testing cron" >/tmp/crontest
/usr/bin/notify-send "hello"
echo "now tested notify-send" >>/tmp/crontest
ตั้งแต่cron
ดูเหมือนจะไม่สนับสนุนการแจ้ง-ส่ง (อย่างน้อยไม่ได้โดยตรง) มีบางระบบการแจ้งเตือนอื่น ๆ ที่มีมากขึ้นcron
เป็นมิตรที่ฉันสามารถใช้?
&>>/tmp/crontest
ในบรรทัดแจ้งเตือนเพื่อดูว่าnotify-send
มีข้อความแสดงข้อผิดพลาดหรือไม่