अपस्टार्ट कुकबुक एक पोस्ट-स्टॉप देरी ( http://upstart.ubuntu.com/cookbook/#delay-respawn-of-a-job ) की सिफारिश करता है । respawn
दलीलों के बिना छंद का उपयोग करें और यह हमेशा के लिए जारी रहेगा:
respawn
post-stop exec sleep 5
(मुझे यह उबंटू प्रश्न पूछें )
घातीय विलंब भाग को जोड़ने के लिए, मैं पोस्ट-स्टॉप स्क्रिप्ट में एक पर्यावरण चर के साथ काम करने की कोशिश करूँगा, मुझे लगता है कि कुछ इस तरह है:
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
** EDIT **
केवल विलंब करते समय, जब वास्तविक स्टॉप पर देरी हो रही है, तो टालें, निम्न का उपयोग करें, जो जाँचता है कि वर्तमान लक्ष्य "स्टॉप" है या नहीं:
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
अनुत्तरित रहता है। किसी को?