summaryrefslogtreecommitdiff
path: root/tinc/files/init
blob: 3a54e2a34bb48e7b82bcd96521d2313f372f73c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#! /bin/sh
#
# System startup script for tinc
# $Id$
#
# Based on Lubomir Bulej's Redhat init script.
#
# Create a file $NETSFILE (/etc/tinc/nets.boot), and put all the names of
# the networks in there.  These names must be valid directory names under
# $TCONF (/etc/tinc).  Lines starting with a # will be ignored in this
# file.
#

DAEMON="/usr/sbin/tincd"
NAME="tinc"
DESC="tinc daemons"
TCONF="/etc/tinc"
EXTRA=""
NETSFILE="$TCONF/nets.boot"
NETS=""

test -f $DAEMON || exit 0

find_nets () {
  if [ ! -f $NETSFILE ] ; then
    echo "Please create $NETSFILE."
    exit 0
  fi
  NETS="`egrep '^[ ]*[a-zA-Z0-9_]+[ ]*$' $NETSFILE`"
}

case "$1" in
  start)
    find_nets
    echo -n "Starting $DESC:"
    for n in $NETS ; do
      echo -n " $n"
      $DAEMON -n $n $EXTRA
    done
    echo "."
  ;;
  stop)
    find_nets
    echo -n "Stopping $DESC:"
    for n in $NETS ; do
      echo -n " $n"
      $DAEMON -n $n $EXTRA -k
    done
    echo "."
  ;;
  reload)
    find_nets
    echo -n "Reloading $DESC configuration:"
    for n in $NETS ; do
      echo -n " $n"
      $DAEMON -n $n $EXTRA -k1
    done
    echo "."
  ;;
  restart|force-reload)
    find_nets
    echo -n "Restarting $DESC:"
    for n in $NETS ; do
      echo -n " $n"
      $DAEMON -n $n $EXTRA -k
      sleep 1
      $DAEMON -n $n $EXTRA
    done
    echo "."
  ;;
  *)
    echo "Usage: /etc/init.d/$NAME {start|stop|reload|restart|force-reload}"
    exit 1
  ;;
esac

exit 0