diff options
Diffstat (limited to 'main/tinc/tincd.initd')
-rw-r--r-- | main/tinc/tincd.initd | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/main/tinc/tincd.initd b/main/tinc/tincd.initd new file mode 100644 index 000000000..452687dfb --- /dev/null +++ b/main/tinc/tincd.initd @@ -0,0 +1,64 @@ +#!/sbin/runscript +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/tinc/files/tincd,v 1.5 2008/04/01 14:08:45 dragonheart Exp $ + +opts="reload" + +depend() { + use logger dns + need net +} + +checkconfig() { + if ! grep -q '^ *NETWORK:' /etc/conf.d/tinc.networks + then + eerror "No VPN networks configured in /etc/conf.d/tinc.networks" + return 1 + fi +} + +start() { + checkconfig || return 1 + ebegin "Starting tinc VPN networks" + eend 0 + awk '/^ *NETWORK:/ { print $2 }' /etc/conf.d/tinc.networks | while read TINCNET + do + if [ ! -f /etc/tinc/"$TINCNET"/tinc.conf ] + then + eerror "Cannot start network $TINCNET, /etc/tinc/$TINCNET/tinc.conf does not exist !" + else + ebegin "Starting tinc network $TINCNET" + /usr/sbin/tincd --net="$TINCNET" --logfile=/var/log/tinc.$TINCNET.log --pidfile=/var/run/tinc.$TINCNET.pid + eend $? + fi + done +} + +stop() { + ebegin "Stopping tinc VPN networks" + eend 0 + awk '/^ *NETWORK:/ { print $2 }' /etc/conf.d/tinc.networks | while read TINCNET + do + if [ -f /var/run/tinc."$TINCNET".pid ] + then + ebegin "Stopping tinc network $TINCNET" + /usr/sbin/tincd --kill --pidfile=/var/run/tinc."$TINCNET".pid + eend $? + fi + done +} + +reload() { + ebegin "Reloading configuration for tinc VPN networks" + eend 0 + awk '/^ *NETWORK:/ { print $2 }' /etc/conf.d/tinc.networks | while read TINCNET + do + if [ -f /var/run/tinc."$TINCNET".pid ] + then + ebegin "Reloading tinc network $TINCNET" + /usr/sbin/tincd --kill HUP --pidfile=/var/run/tinc."$TINCNET".pid + eend $? + fi + done +} |