PKG_NAME:=bird
PKG_VERSION:=1.3.3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=bird-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=ftp://bird.network.cz/pub/bird
#!/bin/sh /etc/rc.common
+# Copyright (C) 2010-2011 OpenWrt.org
START=50
-# Birdloop is used to restart BIRD if it crashed. Unfortunately, it also
-# hides and handles in the same manner start-time errors (like parse error
-# in config file). Therefore, it is not used by default. If you want to
-# use it, comment the first line and uncomment the second line in start().
+SERVICE_DAEMONIZE=1
+SERVICE_WRITE_PID=1
start() {
- /usr/sbin/bird4
-# /usr/sbin/bird4loop
+ service_start /usr/sbin/bird4 -d
+# ( SERVICE_MATCH_NAME=1 service_start /usr/sbin/bird4loop )
}
stop() {
- killall bird4
- sleep 1
+# ( SERVICE_MATCH_NAME=1 service_stop /usr/sbin/bird4loop )
+ service_stop /usr/sbin/bird4
}
reload() {
- killall -HUP bird4
+ service_reload /usr/sbin/bird4
}
BIRD=/usr/sbin/bird4
-$BIRD -p
+$BIRD -p || return 1
-( until $BIRD -d "$@"
-do
- logger error BIRD4 died!
- sleep 2
-done; ) </dev/null >/dev/null 2> /dev/null &
+. /lib/functions.sh
+SERVICE_DAEMONIZE=1
+SERVICE_WRITE_PID=1
+
+sig_handler() {
+ running=0
+ service_stop $BIRD
+}
+
+running=1
+trap sig_handler INT
+trap sig_handler TERM
+while [ $running -gt 0 ]; do
+ service_check $BIRD || service_start $BIRD -d "$@"
+ sleep 3
+done
#!/bin/sh /etc/rc.common
+# Copyright (C) 2010-2011 OpenWrt.org
START=50
-# Birdloop is used to restart BIRD if it crashed. Unfortunately, it also
-# hides and handles in the same manner start-time errors (like parse error
-# in config file). Therefore, it is not used by default. If you want to
-# use it, comment the first line and uncomment the second line in start().
+SERVICE_DAEMONIZE=1
+SERVICE_WRITE_PID=1
start() {
- /usr/sbin/bird6
-# /usr/sbin/bird6loop
+ service_start /usr/sbin/bird6 -d
+# ( SERVICE_MATCH_NAME=1 service_start /usr/sbin/bird6loop )
}
stop() {
- killall bird6
- sleep 1
+# ( SERVICE_MATCH_NAME=1 service_stop /usr/sbin/bird6loop )
+ service_stop /usr/sbin/bird6
}
reload() {
- killall -HUP bird6
+ service_reload /usr/sbin/bird6
}
BIRD=/usr/sbin/bird6
-$BIRD -p
+$BIRD -p || return 1
-( until $BIRD -d "$@"
-do
- logger error BIRD6 died!
- sleep 2
-done; ) </dev/null >/dev/null 2> /dev/null &
+. /lib/functions.sh
+SERVICE_DAEMONIZE=1
+SERVICE_WRITE_PID=1
+
+sig_handler() {
+ running=0
+ service_stop $BIRD
+}
+
+running=1
+trap sig_handler INT
+trap sig_handler TERM
+while [ $running -gt 0 ]; do
+ service_check $BIRD || service_start $BIRD -d "$@"
+ sleep 3
+done