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