SysVinit script
This commit is contained in:
parent
82ddca10b7
commit
48d46d81af
|
@ -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
|
||||
|
Loading…
Reference in New Issue