ตำราพุ่งพรวดแนะนำให้ชะลอการโพสต์ ( http://upstart.ubuntu.com/cookbook/#delay-respawn-of-a-job ) ใช้respawn
บทที่ไม่มีข้อโต้แย้งและมันจะพยายามอย่างต่อเนื่องตลอดไป:
respawn
post-stop exec sleep 5
(ฉันได้รับสิ่งนี้จากคำถามถาม Ubuntu )
หากต้องการเพิ่มส่วนการหน่วงเวลาเอ็กซ์โปเนนเชียลฉันลองทำงานกับตัวแปรสภาพแวดล้อมในสคริปต์หลังหยุดฉันคิดว่า:
env SLEEP_TIME=1
post-stop script
sleep $SLEEP_TIME
NEW_SLEEP_TIME=`expr 2 \* $SLEEP_TIME`
if [ $NEW_SLEEP_TIME -ge 60 ]; then
NEW_SLEEP_TIME=60
fi
initctl set-env SLEEP_TIME=$NEW_SLEEP_TIME
end script
** แก้ไข **
เมื่อต้องการใช้การหน่วงเวลาเฉพาะเมื่อ respawning หลีกเลี่ยงความล่าช้าในการหยุดจริงใช้ต่อไปนี้ซึ่งตรวจสอบว่าเป้าหมายปัจจุบันเป็น "หยุด" หรือไม่:
env SLEEP_TIME=1
post-stop script
goal=`initctl status $UPSTART_JOB | awk '{print $2}' | cut -d '/' -f 1`
if [ $goal != "stop" ]; then
sleep $SLEEP_TIME
NEW_SLEEP_TIME=`expr 2 \* $SLEEP_TIME`
if [ $NEW_SLEEP_TIME -ge 60 ]; then
NEW_SLEEP_TIME=60
fi
initctl set-env SLEEP_TIME=$NEW_SLEEP_TIME
fi
end script
never give up trying to respawn
ยังไม่ได้ตอบ ใคร?