From 48d46d81af93d0912022e96958f131c5f8acdfc2 Mon Sep 17 00:00:00 2001 From: Rigel Kent Date: Sun, 13 May 2018 10:38:23 +0200 Subject: [PATCH] SysVinit script --- support/init.d/peertube | 173 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 support/init.d/peertube diff --git a/support/init.d/peertube b/support/init.d/peertube new file mode 100644 index 000000000..4473fc0ea --- /dev/null +++ b/support/init.d/peertube @@ -0,0 +1,173 @@ +#!/bin/sh + +APP_NAME="peertube" +USER="peertube" +GROUP="peertube" +NODE_ENV="production" +APP_DIR="/var/www/peertube" +NODE_APP="dist/server" +KWARGS="" +CONFIG_DIR="/etc/peertube" +PID_DIR="$APP_DIR/pid" +PID_FILE="$PID_DIR/$APP_NAME.pid" +LOG_DIR="/var/log/peertube" +LOG_FILE="$LOG_DIR/$APP_NAME.log" +NODE_EXEC=$(which node) + +############### + +# REDHAT chkconfig header + +# chkconfig: - 58 74 +# description: peertube service script. +### BEGIN INIT INFO +# Provides: peertube +# Required-Start: $network $remote_fs $local_fs +# Required-Stop: $network $remote_fs $local_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: start and stop peertube +# Description: Node process for peertube +### END INIT INFO + +############### + +USAGE="Usage: $0 {start|stop|restart|status} [--force]" +FORCE_OP=false + +pid_file_exists() { + [ -f "$PID_FILE" ] +} + +get_pid() { + echo "$(cat "$PID_FILE")" +} + +is_running() { + PID="$(get_pid)" + [ -d /proc/$PID ] +} + +start_it() { + mkdir -p "$PID_DIR" + chown $USER:$GROUP "$PID_DIR" + mkdir -p "$LOG_DIR" + chown $USER:$GROUP "$LOG_DIR" + + echo "Starting $APP_NAME ..." + echo "cd $APP_DIR && NODE_ENV=$NODE_ENV NODE_CONFIG_DIR=$CONFIG_DIR $NODE_EXEC $APP_DIR/$NODE_APP $KWARGS 1>$LOG_FILE 2>&1 & echo \$! > $PID_FILE" | sudo -i -u $USER + echo "$APP_NAME started with pid $(get_pid)" +} + +stop_process() { + PID=$(get_pid) + echo "Killing process $PID" + pkill -P $PID +} + +remove_pid_file() { + echo "Removing pid file" + rm -f "$PID_FILE" +} + +start_app() { + if pid_file_exists + then + if is_running + then + PID=$(get_pid) + echo "$APP_NAME already running with pid $PID" + exit 1 + else + echo "$APP_NAME stopped, but pid file exists" + if [ $FORCE_OP = true ] + then + echo "Forcing start anyways" + remove_pid_file + start_it + fi + fi + else + start_it + fi +} + +stop_app() { + if pid_file_exists + then + if is_running + then + echo "Stopping $APP_NAME ..." + stop_process + remove_pid_file + echo "$APP_NAME stopped" + else + echo "$APP_NAME already stopped, but pid file exists" + if [ $FORCE_OP = true ] + then + echo "Forcing stop anyways ..." + remove_pid_file + echo "$APP_NAME stopped" + else + exit 1 + fi + fi + else + echo "$APP_NAME already stopped, pid file does not exist" + exit 1 + fi +} + +status_app() { + if pid_file_exists + then + if is_running + then + PID=$(get_pid) + echo "$APP_NAME running with pid $PID" + else + echo "$APP_NAME stopped, but pid file exists" + fi + else + echo "$APP_NAME stopped" + fi +} + +case "$2" in + --force) + FORCE_OP=true + ;; + + "") + ;; + + *) + echo $USAGE + exit 1 + ;; +esac + +case "$1" in + start) + start_app + ;; + + stop) + stop_app + ;; + + restart) + stop_app + start_app + ;; + + status) + status_app + ;; + + *) + echo $USAGE + exit 1 + ;; +esac + -- 2.25.1