Hi Jennings,<br><br>You could avoid the race by also checking the elapsed seconds since varnish_uptime file was last written > new_varnish_uptime:<div><br><div><span style="line-height:1.5;font-size:13.1999998092651px">if [ $(($(date "+%s")-$(stat --printf="%Z" varnish_uptime))) -gt $new_varnish_uptime ]; then </span><br></div></div><div><br></div><div>Note: completely untested code. And you can do integer arithmetic in bash without spawning bc with $(( ))</div><br><div class="gmail_quote">El Fri Jan 23 2015 at 18:39:48, Jennings III, Raymond (<<a href="mailto:raymond.jennings@nytimes.com">raymond.jennings@nytimes.com</a>>) escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I was having a lot of segmenation faults in Varnish (due to our own mistakes) but unless you are monitoring syslog or /var/log/kern you might not ever know it's happening given that the child process restarts very quickly so I wrote this little cron job:<div><div><br></div><div><br></div><div>You first have to bootstrap this right after you first install and start varnish with:</div><div><br></div><div>/usr/bin/varnishstat -1 | /bin/grep 'uptime' | /bin/awk '{ print $2}' >/var/nyt/logs/varnish/varnish_uptime<br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>The cron job is:</div><div><br></div><div><br></div><div>#!/bin/bash</div><div><br></div><div><div>new_varnish_uptime=`/usr/bin/varnishstat -1 | /bin/grep 'uptime' | /bin/awk '{ print $2}'`</div><div>old_varnish_uptime=`cat /var/nyt/logs/varnish/varnish_uptime`</div><div><br></div><div>delta_time=$(echo "$new_varnish_uptime - $old_varnish_uptime" | /usr/bin/bc)</div><div><br></div><div>if [[ $delta_time -lt 0 ]]; then</div><div>   echo "Uh oh!!!  Varnish was restarted.  It's uptime is now $new_varnish_uptime and it used to be $old_varnish_uptime." | /bin/mail -s "Varnish Server Restarted!" "<a href="mailto:Raymond.Jennings@nytimes.com" target="_blank">Raymond.Jennings@nytimes.com</a>"</div><div>fi</div><div><br></div><div>echo $new_varnish_uptime >/var/nyt/logs/varnish/varnish_uptime</div><div><br></div><div><br></div><div><br></div><div>There is a race condition if Varnish is restarting faster than the frequency of the cron job running.</div><div><br></div><div><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-weight:bold"><span style="white-space:pre-wrap"><u>                                                                  </u></span></div><div style="color:rgb(0,0,0)"><font face="Helvetica"><span style="font-size:12px">Raymond Jennings III</span></font></div></div><span style="color:rgb(0,0,0);text-align:-webkit-auto;font-family:Helvetica"><font face="Rockwell Extra Bold" style="font-size:19px"><b><a href="http://nytimes.com/" style="color:rgb(17,85,204)" target="_blank">nytimes.com</a></b></font><br></span><div style="color:rgb(0,0,0);font-family:Helvetica"><span style="text-align:-webkit-auto"><span style="font-size:12px;text-align:-webkit-auto"><b><div style="display:inline!important">Office:<span style="font-weight:normal"> <a href="tel:212-556-7786" target="_blank">212.556.7786</a></span></div></b></span><span style="text-align:-webkit-auto"><span style="text-align:-webkit-auto"><b style="font-size:12px;text-align:-webkit-auto"><div>iPhone:<span style="font-weight:normal"> <a href="tel:914-330-5074" target="_blank">914.330.5074</a></span></div><div><b style="font-size:13px">E-mail: </b><a href="mailto:Raymond.Jennings@nytimes.com" style="font-size:13px;font-weight:normal;color:rgb(17,85,204)" target="_blank">Raymond.Jennings@nytimes.com</a><br></div><div>FaceTime:<span style="font-weight:normal"> <a href="mailto:Raymond.Jennings@nytimes.com" style="color:rgb(17,85,204)" target="_blank">Raymond.Jennings@nytimes.com</a></span></div></b></span></span></span></div></div></div></div></div></div></div></div></div></div>
</div></div></div>
______________________________<u></u>_________________<br>
varnish-misc mailing list<br>
<a href="mailto:varnish-misc@varnish-cache.org" target="_blank">varnish-misc@varnish-cache.org</a><br>
<a href="https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc" target="_blank">https://www.varnish-cache.org/<u></u>lists/mailman/listinfo/<u></u>varnish-misc</a></blockquote></div>