Score:1

ดูเหมือนว่างาน Cron จะทำงาน แต่ไม่มีเอาต์พุตและถูกฆ่าหลังจากผ่านไประยะหนึ่ง

ธง fr
VII

ฉันพยายามเรียกใช้สคริปต์หลามด้วย crontab ฉันมีสคริปต์หลาม 2 ตัวในไดเร็กทอรีเดียวกัน คนแรก ไฟล์1.py มีแค่ 1 เส้น พิมพ์(1). ไฟล์ที่สอง ไฟล์ 2.py เริ่มต้นด้วย พิมพ์(2) แต่แล้วรหัสยาวเพื่อสอบถามและอัปเดตข้อมูลในฐานข้อมูล SQL ของฉัน

การตั้งค่าของฉันใน crontab -e เป็นเช่นนี้ (ฉันตั้งค่าไฟล์ให้ทำงานทุกนาทีและบันทึกผลลัพธ์เป็น cron.log

* * * * * cd /path/to/files && python3 file1.py >> /path/to/files/cron.log 2>&1
* * * * * cd /path/to/files && python3 file2.py >> /path/to/files/cron.log 2>&1

เมื่อฉันตรวจสอบผลลัพธ์ใน cron.logตอนแรกฉันเห็นเท่านั้น 1ซึ่งมาจาก ไฟล์1.py แต่ฉันไม่เห็นเลย 2, เอาต์พุตของ ไฟล์ 2.py. อย่างไรก็ตาม หลังจากนั้นไม่นาน อาจจะประมาณ 10 นาที ฉันเข้าใจ ถูกฆ่าตาย ใน cron.log.

ฉันคิดว่า ถูกฆ่าตาย ข้อความหมายถึง cron เริ่มงานเพื่อรัน ไฟล์ 2.py และฆ่างานหลังจากนั้นไม่นาน ฉันไม่สนใจเหตุผลที่ cron ฆ่างานของฉัน สิ่งที่ฉันสับสนคือถ้า cron เริ่มงานให้ทำงาน ไฟล์ 2.pyทำไมถึงไม่มี 2 ใน cron.log. ทั้งหมดที่ฉันเห็นคือ 1 และ ถูกฆ่าตาย. ไฟล์ทั้งสองนี้ทำงานโดยไม่มีปัญหาใด ๆ เมื่อฉันเรียกใช้ด้วยตนเอง ขอบคุณความช่วยเหลือใด ๆ

VII avatar
fr flag
VII
ขอโทษที่แย่ของฉัน แก้ไขแล้ว
Score:1
ธง hr

ฉันสงสัยว่าเป็นเพราะเมื่อเอาต์พุตถูกเปลี่ยนเส้นทาง python3 จะบัฟเฟอร์สตรีมเอาต์พุตมาตรฐาน - และบัฟเฟอร์จะไม่ถูกล้างออกเมื่อกระบวนการถูกฆ่า

เพื่ออธิบายให้

$ cat file2.py
เวลานำเข้า
พิมพ์(2)
เวลานอน(5)

แล้ว

$ หมดเวลา 3 python3 file2.py
2

ในทางตรงกันข้าม

$ หมดเวลา 3 python3 file2.py | แมว
สิ้นสุด

ถ้าคุณบังคับ หลาม3 เพื่อปลดบัฟเฟอร์สตรีม คุณจะเห็นเอาต์พุตบันทึกที่คาดไว้:

$ หมดเวลา 3 python3 -u file2.py | แมว
2
สิ้นสุด
VII avatar
fr flag
VII
ขอบคุณสำหรับคำตอบ ใช่ ฉันต้องปลดบัฟเฟอร์เอาต์พุต ขออภัย นี่เป็นครั้งแรกที่ฉันถามในชุมชนนี้ จึงไม่สามารถโหวตคำตอบของคุณได้ (ชื่อเสียงไม่เพียงพอ)
mondotofu avatar
cn flag
มันสมเหตุสมผลไหมที่จะเขียนเอาต์พุตไปยังไฟล์ cron.log สองไฟล์แยกกันเพื่อลดความขัดแย้ง
hr flag
@mondotofu นั่นเป็นคำถามที่ดี - ฉันไม่รู้จริงๆ

โพสต์คำตอบ

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