* luci/contrib/olsr: fix initscript to not kill itself sometimes
This commit is contained in:
parent
f424439b65
commit
8bba6cf4d0
1 changed files with 25 additions and 5 deletions
|
@ -3,6 +3,10 @@
|
||||||
# Special thanks to bittorf wireless ))
|
# Special thanks to bittorf wireless ))
|
||||||
START=50
|
START=50
|
||||||
|
|
||||||
|
BIN=/usr/sbin/olsrd
|
||||||
|
CONF=/var/etc/olsrd.conf
|
||||||
|
PID=/var/run/olsrd.pid
|
||||||
|
|
||||||
OLSRD_OLSRD_SCHEMA='ignore:internal config_file:internal DebugLevel=0 IpVersion=4 AllowNoInt:bool=1 Pollrate=0.025 TcRedundancy=2 MprCoverage=3 LinkQualityFishEye=1 LinkQualityWinSize=100 LinkQualityDijkstraLimit=0+9.0 LinkQualityLevel=2 UseHysteresis:bool=0 FIBMetric=flat ClearScreen:bool=1 Willingness=3 LinkQualityAging=0.1 LinkQualityAlgorithm=etx_fpm'
|
OLSRD_OLSRD_SCHEMA='ignore:internal config_file:internal DebugLevel=0 IpVersion=4 AllowNoInt:bool=1 Pollrate=0.025 TcRedundancy=2 MprCoverage=3 LinkQualityFishEye=1 LinkQualityWinSize=100 LinkQualityDijkstraLimit=0+9.0 LinkQualityLevel=2 UseHysteresis:bool=0 FIBMetric=flat ClearScreen:bool=1 Willingness=3 LinkQualityAging=0.1 LinkQualityAlgorithm=etx_fpm'
|
||||||
OLSRD_IPCCONNECT_SCHEMA='ignore:internal Host:list Net:list2'
|
OLSRD_IPCCONNECT_SCHEMA='ignore:internal Host:list Net:list2'
|
||||||
OLSRD_LOADPLUGIN_SCHEMA='ignore:internal library:internal Host:list Net:list2 Ping:list redistribute:list NonOlsrIf:list name:list lat lon latlon_infile HNA:list2 hosts:list2'
|
OLSRD_LOADPLUGIN_SCHEMA='ignore:internal library:internal Host:list Net:list2 Ping:list redistribute:list NonOlsrIf:list name:list lat lon latlon_infile HNA:list2 hosts:list2'
|
||||||
|
@ -516,6 +520,14 @@ olsrd_write_config() {
|
||||||
}
|
}
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
|
### check for running instance
|
||||||
|
if [ -s $PID ]; then
|
||||||
|
if kill -0 $(cat $PID) 2>&-; then
|
||||||
|
echo "there is already a running instance ($(cat $PID))"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
SYSTEM_HOSTNAME=
|
SYSTEM_HOSTNAME=
|
||||||
SYSTEM_LAT=
|
SYSTEM_LAT=
|
||||||
SYSTEM_LON=
|
SYSTEM_LON=
|
||||||
|
@ -539,18 +551,26 @@ start() {
|
||||||
config_foreach olsrd_find_config_file olsrd
|
config_foreach olsrd_find_config_file olsrd
|
||||||
|
|
||||||
if [ -z "$OLSRD_CONFIG_FILE" ]; then
|
if [ -z "$OLSRD_CONFIG_FILE" ]; then
|
||||||
mkdir -p -- /var/etc/
|
### generate config
|
||||||
olsrd_write_config > /var/etc/olsrd.conf
|
mkdir -p ${CONF%/*}
|
||||||
|
olsrd_write_config > $CONF
|
||||||
if [ "$INTERFACES_COUNT" -gt 0 -a "$OLSRD_COUNT" -gt 0 ]; then
|
if [ "$INTERFACES_COUNT" -gt 0 -a "$OLSRD_COUNT" -gt 0 ]; then
|
||||||
OLSRD_CONFIG_FILE=/var/etc/olsrd.conf
|
OLSRD_CONFIG_FILE=$CONF
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ -z "$OLSRD_CONFIG_FILE" ] && return 1
|
[ -z "$OLSRD_CONFIG_FILE" ] && return 1
|
||||||
|
|
||||||
olsrd -f "$OLSRD_CONFIG_FILE" -nofork < /dev/null > /dev/null &
|
### start olsrd
|
||||||
|
start-stop-daemon -b -m -p $PID -x $BIN -S -- -f $CONF -nofork
|
||||||
}
|
}
|
||||||
|
|
||||||
stop() {
|
stop() {
|
||||||
killall olsrd
|
### stop olsrd
|
||||||
|
start-stop-daemon -q -p $PID -a ${BIN##*/} -K
|
||||||
|
}
|
||||||
|
|
||||||
|
restart() {
|
||||||
|
### override generic restart because we need some time between stop and start
|
||||||
|
stop; sleep 3; start
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue