blob: d460843d02a22dd9013451c2ff56815791302e04 (
plain) (
blame)
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
#! /bin/sh
### BEGIN INIT INFO
# Provides: dropnroll
# Required-Start: $syslog
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start dropnroll daemon at boot time
# Description: Waits for files in folders and calls script for new files
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/dropnroll
CONFIG_DIR=/etc/dropnroll
NAME=dropnroll
DESC=dropnroll
VARRUN_DIR=/var/run/$NAME
test -x $DAEMON || exit 0
# Include dropnroll defaults if available
if [ -f /etc/default/dropnroll ] ; then
. /etc/default/dropnroll
fi
. /lib/lsb/init-functions
start_dnr () {
STATUS="OK"
if [ -f $CONFIG_DIR/$DNRNAME/config ] ; then
NEWFILE=''
test -f $CONFIG_DIR/$DNRNAME/newfile.sh && NEWFILE="-x $CONFIG_DIR/$DNRNAME/newfile.sh"
CHROOTDIR=`grep '^chroot' < $CONFIG_DIR/$DNRNAME/config | sed 's/chroot\s*//'`
if [ -n "$CHROOTDIR" ] ; then
test -d $CHROOTDIR || mkdir -p $CHROOTDIR
fi
test -d $VARRUN_DIR || mkdir -p $VARRUN_DIR
chmod 777 $VARRUN_DIR
DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$DNRNAME/config | grep -e '\w' | sed 's/^/--/' | tr '\n' ' '`
$DAEMON --write-pid $VARRUN_DIR/$DNRNAME.pid $NEWFILE $DAEMONOPTS $DAEMONARG || STATUS="FAILED"
else
STATUS="no config found"
fi
echo -n "($STATUS)"
}
stop_dnr () {
kill `cat $PIDFILE` || true
rm $PIDFILE
}
set -e
case "$1" in
start)
echo -n "Starting $DESC:"
if test -z "$2" ; then
if [ -f $CONFIG_DIR/autostart ] ; then
for DNRNAME in `sed 's/#.*//' < $CONFIG_DIR/autostart | grep -e '\w'`; do
echo -n " $DNRNAME"
start_dnr
done
else
echo " no config found"
exit 0;
fi
else
while shift ; do
[ -z "$1" ] && break
DNRNAME=$1
echo -n " $DNRNAME"
start_dnr
done
fi
echo "."
;;
stop)
echo -n "Stoping $DESC:"
if test -z "$2" ; then
for PIDFILE in `ls $VARRUN_DIR/*.pid 2> /dev/null`; do
DNRNAME=`echo $PIDFILE | cut -c20-`
DNRNAME=${DNRNAME%%.pid}
echo -n " $DNRNAME"
stop_dnr
done
else
while shift ; do
[ -z "$1" ] && break
if test -e $VARRUN_DIR/$1.pid ; then
PIDFILE=`ls $VARRUN_DIR/$1.pid 2> /dev/null`
DNRNAME=`echo $PIDFILE | cut -c20-`
DNRNAME=${DNRNAME%%.pid}
echo -n " $DNRNAME"
stop_dnr
else
echo -n " (failure: No such tunnel is running: $1)"
fi
done
fi
echo "."
;;
reload)
echo -n "Reloading $DESC:"
if test -z "$2" ; then
for PIDFILE in `ls $VARRUN_DIR/*.pid 2> /dev/null`; do
DNRNAME=`echo $PIDFILE | cut -c20-`
DNRNAME=${DNRNAME%%.pid}
echo -n " $DNRNAME"
stop_dnr
start_dnr
done
else
while shift ; do
[ -z "$1" ] && break
if test -e $VARRUN_DIR/$1.pid ; then
PIDFILE=`ls $VARRUN_DIR/$1.pid 2> /dev/null`
DNRNAME=`echo $PIDFILE | cut -c20-`
DNRNAME=${DNRNAME%%.pid}
echo -n " $DNRNAME"
stop_dnr
start_dnr
else
echo -n " (failure: No such tunnel is running: $1)"
fi
done
fi
echo "."
;;
restart)
SCRIPT=$0
shift
$SCRIPT stop $*
sleep 1
$SCRIPT start $*
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|reload}" >&2
exit 1
;;
esac
exit 0
|