61 lines
1.7 KiB
Django/Jinja
Executable File
61 lines
1.7 KiB
Django/Jinja
Executable File
#!/bin/sh
|
|
### BEGIN INIT INFO
|
|
# Provides: stcp
|
|
# Required-Start: $local_fs $network $time $syslog
|
|
# Required-Stop: $local_fs $network $time $syslog
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 6
|
|
# Description: Sistematics Server v3 (Sep2021)
|
|
### END INIT INFO
|
|
# Date of installation: {{ ansible_date_time.date }}
|
|
|
|
BASE_DIR="{{ stcp_base_dir }}"
|
|
STCP_INSTANCE_NAME="{{ stcp_instance_name }}"
|
|
MULTISRV="$BASE_DIR/$STCP_INSTANCE_NAME/multi_srv_raw"
|
|
LOOP="$BASE_DIR/loop"
|
|
CFG="$BASE_DIR/$STCP_INSTANCE_NAME/server.ini"
|
|
STCP_PIDFILE="/var/run/stcp_${STCP_INSTANCE_NAME}.pid"
|
|
EXT_IF={{ ext_iface }}
|
|
PORT_MIN={{ server_port }}
|
|
MODE={{ stcp_mode }}
|
|
RUNAS={{ stcp_runas }}
|
|
|
|
DAEMON_PIDFILE="/var/run/stcp_${STCP_INSTANCE_NAME}_loop.pid"
|
|
DAEMON_LOGFILE="/var/log/stcp_${STCP_INSTANCE_NAME}_loop.log"
|
|
|
|
start() {
|
|
if [ -f $DAEMON_PIDFILE ] && kill -0 $(cat $DAEMON_PIDFILE); then
|
|
echo -e '\033[1;33m[WARN]\033[0m Service already running' >&2
|
|
return 1
|
|
fi
|
|
echo -e '\033[0;34m[NOTIFY]\033[0m Starting service…' >&2
|
|
local CMD="$LOOP $MULTISRV $CFG $STCP_PIDFILE $EXT_IF $PORT_MIN $MODE"
|
|
su -c "$CMD" $RUNAS > $DAEMON_LOGFILE 2>&1 &
|
|
echo $! > $DAEMON_PIDFILE
|
|
echo -e '\033[0;32m[OK]\033[0m Service started' >&2
|
|
}
|
|
|
|
stop() {
|
|
if [ ! -f $DAEMON_PIDFILE ] || ! kill -0 $(cat $DAEMON_PIDFILE); then
|
|
echo -e '\033[1;33m[WARN]\033[0m Service not running' >&2
|
|
return 1
|
|
fi
|
|
echo -e '\033[0;34m[NOTIFY]\033[0m Stopping service…' >&2
|
|
pkill -15 -P $(cat $DAEMON_PIDFILE) && rm -f $DAEMON_PIDFILE
|
|
echo -e '\033[0;32m[OK]\033[0m Service stopped' >&2
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
start
|
|
;;
|
|
stop)
|
|
stop
|
|
;;
|
|
restart)
|
|
stop
|
|
start
|
|
;;
|
|
*)
|
|
echo "Usage: $0 {start|stop|restart}"
|
|
esac |