2008-01-27 12:00:08 +00:00
|
|
|
#! /bin/sh
|
2008-01-28 21:37:16 +00:00
|
|
|
# source: daemon.sh
|
2016-07-22 06:54:31 +00:00
|
|
|
# Copyright Gerhard Rieger and contributors (see file CHANGES)
|
2008-01-27 12:00:08 +00:00
|
|
|
# Published under the GNU General Public License V.2, see file COPYING
|
|
|
|
|
|
|
|
# This script assumes that you create group daemon1 and user daemon1 before.
|
|
|
|
# they need only the right to exist (no login etc.)
|
|
|
|
|
|
|
|
# Note: this pid file mechanism is not robust!
|
|
|
|
|
|
|
|
# You will adapt these variables
|
|
|
|
USER=daemon1
|
|
|
|
GROUP=daemon1
|
|
|
|
INIF=fwnonsec.domain.org
|
|
|
|
OUTIF=fwsec.domain.org
|
|
|
|
TARGET=w3.intra.domain.org
|
|
|
|
INPORT=80
|
|
|
|
DSTPORT=80
|
|
|
|
#
|
|
|
|
INOPTS="fork,setgid=$GROUP,setuid=$USER"
|
|
|
|
OUTOPTS=
|
|
|
|
PIDFILE=/var/run/socat-$INPORT.pid
|
|
|
|
OPTS="-d -d -lm" # notice to stderr, then to syslog
|
|
|
|
SOCAT=/usr/local/bin/socat
|
|
|
|
|
|
|
|
if [ "$1" = "start" -o -z "$1" ]; then
|
|
|
|
|
|
|
|
$SOCAT $OPTS tcp-l:$INPORT,bind=$INIF,$INOPTS tcp:$TARGET:$DSTPORT,bind=$OUTIF,$OUTOPTS </dev/null &
|
|
|
|
echo $! >$PIDFILE
|
|
|
|
|
|
|
|
elif [ "$1" = "stop" ]; then
|
|
|
|
|
|
|
|
/bin/kill $(/bin/cat $PIDFILE)
|
|
|
|
fi
|