Score:1

paplay ไม่ทำงานจาก cron

ธง mx

กว่าปีที่แล้วฉันเขียนแอพแจ้งเตือน (บน 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 (ไม่ใส่เครื่องหมายแสดงความคิดเห็น) ทำงาน

Gary Fisher avatar
mx flag
ขออภัย ฉันควรจะให้ข้อมูลต่อไปนี้ในโพสต์ต้นฉบับของฉัน
Gary Fisher avatar
mx flag
ไม่แน่ใจว่าฉันทำถูกต้อง แต่มีใครมีความคิด / ข้อมูลว่าทำไม paplay ไม่ทำงานใน Ubuntu 20 แต่ทำงานได้ดีใน Ubuntu 16 ??
Score:1
ธง it

งานวิ่งผ่าน ครอน, หรือ ระบบ สคริปต์เริ่มต้นใช้งานไม่ได้ทำงานในสภาพแวดล้อมรันไทม์เดียวกันกับที่คุณมีบนเดสก์ท็อป ระบบ สคริปต์เริ่มต้นทำงานเป็น ราก. ไม่มีของคุณ เส้นทาง การเปลี่ยนแปลงหรือการตั้งค่าตัวแปรสภาพแวดล้อมอื่นๆ จากคุณ ~/.bashrc จะถูกเผยแพร่ไปยังคุณโดยอัตโนมัติ ครอน งาน. ตัวอย่างเช่นไม่มี $จอแสดงผลดังนั้นโปรแกรม GUI จึงต้องการการดูแลเป็นพิเศษ (อ่าน ผู้ชาย xhost).

หนึ่งสามารถตั้งค่าตัวแปรสภาพแวดล้อมสำหรับทุกคน ครอน งานใน crontab ไฟล์ อ่าน ผู้ชาย 5 crontab.

ดูผลลัพธ์ของ echo "=== id ===;id;echo "=== ชุด ==";set;echo "=== env ==";env | sort;echo "=== นามแฝง ===";นามแฝง ในแต่ละสภาพแวดล้อมของคุณ

ตั้งแต่ สั่งการ ส่วนหนึ่งของ crontab บรรทัดถูกตีความโดยค่าเริ่มต้น /ถัง/shซึ่งมีไวยากรณ์ที่ง่ายกว่า /ถัง/ทุบตีฉันขอแนะนำให้มี สั่งการ เป็นสายไปยัง ทุบตี สคริปต์ (ปฏิบัติการ, เมาต์, ขึ้นต้นด้วย #!/bin/bash) ซึ่งตั้งค่าสภาพแวดล้อมแล้วเรียกใช้โปรแกรมที่ต้องการ

waltinator avatar
it flag
ความคิดเห็นได้รับการออกแบบมาเพื่อให้สหรัฐอเมริกาถามคำถามเกี่ยวกับคำถามของคุณ คุณควร [แก้ไข] คำถามของคุณเพื่อเพิ่มข้อมูล การอัปเดตคำถามของคุณ และการใช้ปุ่มการจัดรูปแบบ จะทำให้ผู้อ่านใหม่สามารถเข้าถึงข้อมูลทั้งหมดได้ ผู้คนไม่ควรต้องอ่านความคิดเห็นชุดยาวเพื่อรับเรื่องราวทั้งหมด
Gary Fisher avatar
mx flag
มีใครบ้างที่มีความคิดว่าทำไม paplay ไม่ทำงานในสคริปต์ของฉันบน Ubuntu 20.04 แต่ทำงานได้ดีบน Ubuntu 16.04 ?? และเพื่อแสดงความคิดเห็นในการตอบสนองดั้งเดิม ส่วนคำสั่งของบรรทัด crontab อาจถูกตีความโดย /bin/sh แต่การเรียกใช้สคริปต์ทุบตี

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา