ฉันแค่กระโดดเข้าสู่ยูนิกซ์จากโลกที่แตกต่างและอยากรู้ว่า
while true
do
/someperlscript.pl
done
สคริปต์ perl ภายในมีโฟลเดอร์ / ตัวเฝ้าดูไฟล์ที่ดำเนินการเมื่อไฟล์ถูกเปลี่ยนในตำแหน่งเป้าหมาย
นี่while true
เป็นความคิดที่ดีหรือไม่? ถ้าไม่เป็นวิธีการที่แข็งแกร่งที่ต้องการคืออะไร?
TIA
แก้ไข: เนื่องจากสิ่งนี้ดูเหมือนว่าจะสร้างความสนใจพอสมควรนี่เป็นสถานการณ์ที่สมบูรณ์ สคริปต์ perl ตัวเองดูไดเรกทอรีโดยใช้ตัวตรวจสอบไฟล์ เมื่อได้รับไฟล์ใหม่ (พวกเขามาถึงทาง rsync) มันจะรับไฟล์ใหม่และดำเนินการ ตอนนี้ไฟล์ที่เข้ามาอาจเสียหาย (อย่าถาม .. มาจาก raspberry pi) และบางครั้งกระบวนการอาจไม่สามารถจัดการกับมันได้ ฉันไม่รู้ว่าทำไมเพราะเรายังไม่ได้ตระหนักถึงสถานการณ์ทั้งหมด
แต่ - หากกระบวนการล้มเหลวด้วยเหตุผลบางอย่างเราต้องการให้มันทำงานและจัดการกับไฟล์ถัดไปเพราะไฟล์ถัดไปไม่เกี่ยวข้องอย่างสมบูรณ์กับไฟล์ก่อนหน้าซึ่งอาจทำให้เกิดข้อผิดพลาด
โดยปกติฉันจะใช้การจับบางอย่างและห่อโค้ดทั้งหมดไว้รอบ ๆ เพื่อไม่ให้เกิดปัญหา แต่ก็ไม่แน่ใจเรื่อง Perl
จากสิ่งที่ฉันเข้าใจการใช้สิ่งต่าง ๆ เช่น supervisord เป็นวิธีการที่ดีสำหรับสิ่งนี้
inotify
API เพื่อให้คุณสามารถหลีกเลี่ยงการวนรอบไม่ว่างที่รอให้ไฟล์เปลี่ยนแปลงในไดเรกทอรีเป้าหมายของคุณ