On Tuesday 31 March 2015 11:15:09 Olle E. Johansson wrote:
In my view a software that gets segementation faults needs to be fixed so that it does not happen. Anything else is workarounds that may hide the fact that you have a serious bug.
That is a good view, but in the meantime you'll have to make sure your production servers keep running.
I use supervisor/sipsak as watchdog to restart if there is no kamailio running.
kamcheck to start from supervisor, script keeps running if where is atleast 1 valid response every 3 tries (about 1 per sec). If 3 consecutive fails, stop kamailio (which might fail) and then nuke it from orbit just to be save. Script dies and supervisor will restart it, relaunching kamailio.
#!/bin/sh err=0 /etc/init.d/kamailio start
while [ $err -lt 3 ] do sipsak -s sip:ping@127.0.0.1 2> /dev/null
if [ $? -eq 0 ] then err=0 else err=$(( $err + 1 )) date echo error count: $err fi
sleep 1 done
/etc/init.d/kamailio stop killall -9 kamailio