bmx-routing / bmx6

BMX6 Mesh Networking Protocol
http://bmx6.net
56 stars 26 forks source link

automatic restart of bmx6 when it crashes / log only when crashes #21

Open pedro-nonfree opened 6 years ago

pedro-nonfree commented 6 years ago

cc @dyangol

We are having issues because sometimes bmx6 crashes The most common issue in bmx6 mesh networks is that a bmx6 crashed, and the solution we apply is to restart bmx6 daemon. I think two actions are required:

  1. Fix /etc/init.d/bmx6 to have a debug level of 0 (this way, and hopefully, we will know cleary when bmx6 crashed). By default/now is reporting too much. OK, debug level of 0 is like too much verbose. Probably we can find a grep expression to reduce it even more

  2. Start again automatically when it crashes

#!/bin/sh /etc/rc.common
#    Copyright (C) 2011 Fundacio Privada per a la Xarxa Oberta, Lliure i Neutral guifi.net
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License along
#    with this program; if not, write to the Free Software Foundation, Inc.,
#    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
#    The full GNU General Public License is included in this distribution in
#    the file called "COPYING".

START=99

BIN=/usr/sbin/bmx6
CONF=/etc/config/bmx6
PID=/var/run/bmx6/pid

start() {
        cd /root/
        while pgrep -f mac80211.sh ; do sleep 1; done
        ulimit -c 20000
        $BIN -f $CONF -d0 > /dev/null &
}

stop() {
        start-stop-daemon -p $PID -K
}

restart() {
        stop; sleep 3; start
}

I can send a logread example privately (probably too much sensitive information)