Skip to content

Commit

Permalink
adding init type of files
Browse files Browse the repository at this point in the history
  • Loading branch information
cbxcube committed Mar 7, 2020
1 parent f74969e commit 3c474fd
Showing 1 changed file with 161 additions and 0 deletions.
161 changes: 161 additions & 0 deletions initd/ptunnel
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
#! /bin/sh
#
# init script for the TCP over ICMP tunnel daemon: ptunnel

### BEGIN INIT INFO
# Provides: ptunnel
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Run TCP over ICMP tunnelling daemon
### END INIT INFO

# Author: Jaap Eldering <eldering@a-eskwadraat.nl>
# Modified from ddhclient init script by Torsten Landschoff <torsten@debian.org>

PATH=/sbin:/bin:/usr/sbin:/usr/bin
NAME="ptunnel"
DAEMON=/usr/sbin/$NAME
DESC="TCP over ICMP tunnelling daemon"

# Don't run if not installed
test -f $DAEMON || exit 0

# Evaluate the config for the Debian scripts
run_daemon=false

if [ -r /etc/default/ptunnel ]; then
. /etc/default/ptunnel
fi

PIDFILE=/var/run/$NAME.pid
OPTIONS="-daemon $PIDFILE ${password:+-x $password}"

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
. /lib/lsb/init-functions

#
# Function that starts the daemon/service
#
do_start()
{
if [ "$run_daemon" != "true" ]; then
return 0
fi

# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --test --start --quiet \
--pidfile $PIDFILE --name $NAME --startas $DAEMON \
>/dev/null \
|| return 1

start-stop-daemon --start --quiet \
--pidfile $PIDFILE --name $NAME --startas $DAEMON \
-- $OPTIONS \
|| return 2
}

#
# Function that stops the daemon/service
#
do_stop()
{
if [ "$run_daemon" != "true" ]; then
return 0
fi

# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 \
--pidfile $PIDFILE --name $NAME
return "$?"
}


case "$1" in
start)
if [ "$run_daemon" != "true" ]; then
log_warning_msg "To run the ptunnel daemon, please set run_daemon to 'true' in /etc/default/ptunnel "
log_end_msg 0
exit 0
fi
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
if [ "$run_daemon" != "true" ]; then
log_warning_msg "To run the ptunnel daemon, please set run_daemon to 'true' in /etc/default/ptunnel "
log_end_msg 0
exit 0
fi
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;

status)
echo -n "Status of $DESC: "
if [ ! -r "$PIDFILE" ]; then
echo "$NAME is not running."
exit 3
fi
if read pid < "$PIDFILE" && ps -p "$pid" > /dev/null 2>&1; then
echo "$NAME is running."
exit 0
else
echo "$NAME is not running but $PIDFILE exists."
exit 1
fi
;;


restart|force-reload)
if [ $run_daemon != "true" ]; then
log_warning_msg "To run the ptunnel daemon, please set run_daemon to 'true' in /etc/default/ptunnel "
log_end_msg 0
exit 0
fi
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;

*)
N=/etc/init.d/$NAME
# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
log_success_msg "Usage: $N {start|stop|restart|force-reload}"
exit 1
;;
esac

exit 0

0 comments on commit 3c474fd

Please sign in to comment.