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"
 | |
| 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
 | |
| 
 |