mirror of https://github.com/Chocobozzz/PeerTube
				
				
				
			
		
			
				
	
	
		
			174 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
			
		
		
	
	
			174 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
#!/bin/sh
 | 
						|
 | 
						|
APP_NAME="peertube"
 | 
						|
USER="peertube"
 | 
						|
GROUP="peertube"
 | 
						|
NODE_ENV="production"
 | 
						|
APP_DIR="/var/www/peertube/peertube-latest"
 | 
						|
NODE_APP="dist/server"
 | 
						|
KWARGS=""
 | 
						|
CONFIG_DIR="/var/www/peertube/config"
 | 
						|
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
 | 
						|
 |