กว่าปีที่แล้วฉันเขียนแอพแจ้งเตือน (บน Ubuntu 16.04.7) ซึ่งเล่นเสียงด้วย paplay จากนั้นวางหน้าต่าง yad พร้อมข้อความแจ้งเตือน สามารถเรียกใช้ได้ทั้งจากบรรทัดคำสั่งหรือจาก cron เมื่อเร็ว ๆ นี้ฉันติดตั้ง Ubuntu 20.04.3 และพบว่าการเรียกใช้จากบรรทัดคำสั่งยังคงใช้งานได้ แต่การเรียกใช้จาก cron ไม่ได้ ฉันมีไดเร็กทอรี bin ใต้โฮมไดเร็กตอรี่ที่เก็บสคริปต์ (remind.sh) ไว้ เวอร์ชันที่ลดขนาดลงของ alert.sh มีดังต่อไปนี้ โปรดทราบว่าเมื่อฉันเรียกใช้จาก cron ฉันไม่ได้รับสัญญาณเสียงว่าสคริปต์ทำงานแล้ว แต่ไฟล์ trace.txt ได้รับการอัปเดตและ yad จะสร้างหน้าต่างขึ้นมา
#!/bin/bash
# สคริปต์เตือนความจำที่เรียกจากอย่างใดอย่างหนึ่ง
#1.ครอนหรือ
# 2. โดยตรงจากเชลล์ไปยังป๊อปอัปหรือ
#3.gidday.sh
# สร้างหน้าต่าง 'yad' พร้อมรูปภาพและข้อความในนั้น
/usr/bin/paplay /home/gary/sounds/marimba.ogg
#ติดตามการวิ่ง
d=`วันที่`
echo "เสร็จสิ้น -- "$d >> trace.txt
#ออกไปนอกหน้าต่างเดี๋ยวนี้
#
#/usr/bin/yad --borders=50 --scroll --image=/home/gary/Pictures/shrunk-pictures/${ar[$t]} --title="${ar[$t] }" --text-align=center --mouse --width=800 --height=400 --text='<span font="20">'"$txt"'</span>' 2>/dev /โมฆะ
ขออภัย ฉันควรจะให้ข้อมูลต่อไปนี้ในโพสต์ต้นฉบับของฉัน บรรทัดใน crontab ที่ปิดการทำงานของสคริปต์ alert1.sh คือ:
36 13 30 ส.ค. * ส่งออก DISPLAY=:0 && ส่งออก MESSG="รับภาพยนตร์จาก lib" && /home/gary/bin/remind1.sh
อย่างที่ฉันพูดไปก่อนหน้านี้ ทั้งหมดนี้ทำงานได้ดีใน Ubuntu 16.04 และมันยังไม่ได้อธิบายว่าทำไมคำสั่ง paplay ไม่ทำงาน แต่คำสั่ง yad (ไม่ใส่เครื่องหมายแสดงความคิดเห็น) ทำงาน