mirror of
https://anongit.gentoo.org/git/repo/gentoo.git
synced 2025-06-09 06:35:19 +02:00
Provide a `configtest` command usable with `rc-service`. Add some descriptive strings when running `rc-service radvd describe`. Signed-off-by: Oskari Pirhonen <xxc3ncoredxx@gmail.com> Closes: https://github.com/gentoo/gentoo/pull/34479 Signed-off-by: Sam James <sam@gentoo.org>
83 lines
1.8 KiB
Text
83 lines
1.8 KiB
Text
#!/sbin/openrc-run
|
|
# Copyright 1999-2023 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
CONFIGFILE=/etc/radvd.conf
|
|
PIDFILE=/run/radvd/radvd.pid
|
|
SYSCTL_FORWARD=net.ipv6.conf.all.forwarding
|
|
|
|
description="IPv6 Router Advertisement Daemon"
|
|
|
|
extra_commands="configtest"
|
|
extra_started_commands="reload"
|
|
description_configtest="Test the configuration and run startup tests"
|
|
description_reload="Reload the radvd configuration file"
|
|
|
|
depend() {
|
|
need net
|
|
}
|
|
|
|
checkconfig() {
|
|
if [ ! -f "${CONFIGFILE}" ]; then
|
|
eerror "Configuration file ${CONFIGFILE} not found"
|
|
return 1
|
|
fi
|
|
|
|
if ! /usr/sbin/radvd -c -C "${CONFIGFILE}" ; then
|
|
eerror "Configuration file ${CONFIGFILE} failed test"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
configtest() {
|
|
ebegin "Checking ${RC_SVCNAME} configuration"
|
|
checkconfig
|
|
eend $?
|
|
}
|
|
|
|
start() {
|
|
if [ "${FORWARD}" != "no" ]; then
|
|
ebegin "Enabling IPv6 forwarding"
|
|
sysctl -w "${SYSCTL_FORWARD}=1" >/dev/null
|
|
eend $?
|
|
fi
|
|
|
|
checkconfig || return 1
|
|
|
|
checkpath -d -o radvd:radvd "${PIDFILE%/*}"
|
|
|
|
ebegin "Starting IPv6 Router Advertisement Daemon"
|
|
start-stop-daemon --start --exec /usr/sbin/radvd \
|
|
--pidfile "${PIDFILE}" \
|
|
-- -C "${CONFIGFILE}" -p "${PIDFILE}" -u radvd ${OPTIONS}
|
|
eend $?
|
|
}
|
|
|
|
stop() {
|
|
ebegin "Stopping IPv6 Router Advertisement Daemon"
|
|
start-stop-daemon --stop --exec /usr/sbin/radvd --pidfile "${PIDFILE}"
|
|
eend $?
|
|
|
|
if [ "${FORWARD}" != "no" ]; then
|
|
ebegin "Disabling IPv6 forwarding"
|
|
sysctl -w "${SYSCTL_FORWARD}=0" > /dev/null
|
|
eend $?
|
|
fi
|
|
}
|
|
|
|
reload() {
|
|
if [ "${FORWARD}" != "no" ]; then
|
|
ebegin "Enabling IPv6 forwarding"
|
|
sysctl -w "${SYSCTL_FORWARD}=1" >/dev/null
|
|
eend $?
|
|
fi
|
|
|
|
checkconfig || return 1
|
|
|
|
checkpath -d -o radvd:radvd "${PIDFILE%/*}"
|
|
|
|
ebegin "Reloading IPv6 Router Advertisement Daemon"
|
|
start-stop-daemon --signal HUP \
|
|
--exec /usr/sbin/radvd --pidfile "${PIDFILE}"
|
|
eend $?
|
|
}
|