|
- #!/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
|