First try for a new initd script

This commit is contained in:
Alarig Le Lay 2019-03-05 11:45:47 +01:00
parent e623f0bcf7
commit 2d306ec392
2 changed files with 57 additions and 1 deletions

View File

@ -31,6 +31,6 @@ src_install() {
fi
dobin birdcl
dosbin bird
newinitd "${FILESDIR}/initd-v4-${PN}-1.3.8" bird
newinitd "${FILESDIR}/initd-${PN}-2" bird
dodoc doc/bird.conf.example
}

View File

@ -0,0 +1,56 @@
#!/sbin/openrc-run
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
extra_started_commands="reload"
pidfile="/var/run/${RC_SVCNAME}.pid"
CONF_FILE="/etc/${RC_SVCNAME}.conf"
SOCK="/var/run/${RC_SVCNAME}.ctl"
command="/usr/sbin/${RC_SVCNAME}"
command_args="-c ${CONF_FILE} -s ${SOCK} -P ${pidfile}"
depend() {
need net
use logger
}
checkconfig() {
if [ ! -f "CONF_FILE" ]; then
eerror "Please create ${CONF_FILE}"
return 1
fi
return 0
}
check_run() {
STATE=$(birdc -s /var/run/bird.ctl 'configure check' | \
grep 'Configuration OK')
if [ -n "${STATE}" ]; then
return 0
else
eerror "$(birdc -s /var/run/bird.ctl 'configure check' | \
sed '1d;2d')"
return 1
fi
}
reload() {
check_run || return 1
ebegin "Reloading BIRD"
start-stop-daemon --signal HUP --exec ${command}
eend $?
}
stop_pre() {
if [ "${RC_CMD}" = "restart" ] ; then
check_run || return 1
fi
}
stop() {
ebegin "Stopping BIRD"
start-stop-daemon --stop --exec ${command} --retry 15
}