]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
SysVinit script
authorRigel Kent <sendmemail@rigelk.eu>
Sun, 13 May 2018 08:38:23 +0000 (10:38 +0200)
committerChocobozzz <me@florianbigard.com>
Sun, 13 May 2018 14:30:05 +0000 (16:30 +0200)
support/init.d/peertube [new file with mode: 0644]

diff --git a/support/init.d/peertube b/support/init.d/peertube
new file mode 100644 (file)
index 0000000..4473fc0
--- /dev/null
@@ -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
+