diff options
Diffstat (limited to 'net-misc/vde/files/vde.init-r1')
-rw-r--r-- | net-misc/vde/files/vde.init-r1 | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/net-misc/vde/files/vde.init-r1 b/net-misc/vde/files/vde.init-r1 new file mode 100644 index 0000000..0934c51 --- /dev/null +++ b/net-misc/vde/files/vde.init-r1 @@ -0,0 +1,44 @@ +#!/sbin/openrc-run +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +command="/usr/bin/vde_switch" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + after net.${VDE_TAP} +} + +start_pre() { + [ "${VDE_MODPROBE_TUN}" = "yes" ] || return 0 + modprobe tun +} + +# We have to use start() because the shortform uses --pidfile for s-s-d --start +# which causes s-s-d to check the pid file before it exists +start() { + VDE_SOCKET="${VDE_SOCKET:-/run/${RC_SVCNAME}.ctl}" + + ebegin "Starting ${SVC_NAME}" + + start-stop-daemon --start --exec ${command} -- \ + --pidfile=${pidfile} \ + --tap=${VDE_TAP} \ + --group=${VDE_GROUP} \ + --mode=660 \ + --dirmode=770 \ + --sock=${VDE_SOCKET} \ + --daemon \ + ${VDE_OPTS} + ewaitfile 10 "${VDE_SOCKET}" + + eend $? "Failed to start ${RC_SVCNAME}" +} + +stop_post() { + [ "${VDE_MODPROBE_TUN}" = "yes" ] && modprobe --quiet --remove tun + + # Don't fail to stop the service if the "tun" module in use + # and the above "modprobe -r" command fails. + return 0 +} |