<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">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 class="gmail_signature"><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>