From 3c474fd8660afbf011d0c225c3c1f6b5d13ec654 Mon Sep 17 00:00:00 2001 From: cbxcube Date: Sat, 7 Mar 2020 13:16:27 +0100 Subject: [PATCH] adding init type of files --- initd/ptunnel | 161 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100755 initd/ptunnel diff --git a/initd/ptunnel b/initd/ptunnel new file mode 100755 index 0000000..9ee34d5 --- /dev/null +++ b/initd/ptunnel @@ -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 +# Modified from ddhclient init script by Torsten Landschoff + +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