pe1chl-elproxy/init.d-elproxy
2022-05-29 21:12:14 +10:00

95 lines
1.8 KiB
Bash
Executable file

#! /bin/bash
# setup echolink proxies - Rob Janssen
#
# /etc/init.d/elproxy
#
### BEGIN INIT INFO
# Provides: elproxy
# Required-Start: cron
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Configure special network interface and start el proxies
### END INIT INFO
. /lib/lsb/init-functions
PROG="elproxy"
DAEMON=/home/elproxy/elproxy
CONFIG=/home/elproxy/ELProxy.conf
STATFILE=/dev/shm/elproxy
PIDFILE=/var/run/$PROG.pid
LOGFILE=/var/log/$PROG
ERRLOG=/var/log/$PROG.err
RUNASUSER=elproxy
ELPROXIF="dummy0"
ELPROXNET="44.137.75"
test -x $DAEMON || exit 5
case "$1" in
start)
echo "Starting elproxy daemon"
## Check about pid file
if [ -e $PIDFILE ]; then
if $0 status > /dev/null ; then
log_failure_msg "$PROG is already started; not starting"
return
else
log_progress_msg "[Removing stale PID file $PIDFILE]"
rm -f $PIDFILE
fi
fi
echo "Starting interface"
modprobe dummy
ifconfig $ELPROXIF $ELPROXNET.1/24 up
for i in {2..249}
do
ip addr add $ELPROXNET.$i/32 dev $ELPROXIF
done
echo "Starting proxies"
touch $LOGFILE
chown $RUNASUSER.$RUNASUSER $LOGFILE
sleep 2
start-stop-daemon --start --pidfile $PIDFILE --make-pidfile --chuid $RUNASUSER --startas $DAEMON -- $CONFIG >>$ERRLOG 2>&1
;;
stop)
echo "Stopping proxies"
start-stop-daemon --stop --pidfile $PIDFILE
rm -f $STATFILE
sleep 10
echo "Stopping interface"
for i in {2..249}
do
ip addr del $ELPROXNET.$i/32 dev $ELPROXIF 2>/dev/null
done
ifconfig $ELPROXIF down
;;
restart)
$0 stop; sleep 2; $0 start
;;
reload)
echo "Reloading proxies"
killall -9 $DAEMON
rm -f $STATFILE $PIDFILE
sleep 2
start-stop-daemon --start --pidfile $PIDFILE --make-pidfile --chuid $RUNASUSER --startas $DAEMON -- $CONFIG >>$ERRLOG 2>&1
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0