#!/bin/sh # ### BEGIN INIT INFO # Provides: Teamate # Required-Start: $local_fs $remote_fs # Required-Stop: $local_fs $remote_fs # Should-Start: $local_fs # Should-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Teamate # Description: Teamate ### END INIT INFO # ### BEGIN CHKCONFIG INFO # chkconfig: 2345 50 50 # description: Teamate ### END CHKCONFIG INFO APPLICATION_NAME="Teamate" APPLICATION_ID="teamate" APPLICATION_PATH="/home/wsadmin/workspaces/teamate/app.js" PORT="3000" MIN_UPTIME="5000" SPIN_SLEEP_TIME="2000" PIDFILE_DIR="/var/run/$APPLICATION_ID" PIDFILE_PATH="$PID_DIR/$APPLICATION_ID.pid" LOGFILE_DIR="/var/log/$APPLICATION_ID" LOGFILE_PATH="$LOGFILE_DIR/$APPLICATION_ID.log" start() { echo "Starting $APPLICATION_NAME" mkdir -p "$PIDFILE_DIR" mkdir -p "$LOGFILE_DIR" export PORT="$PORT" forever \ --pidFile $PIDFILE_PATH \ -a \ -l $LOGFILE_PATH \ --minUptime $MIN_UPTIME \ --spinSleepTime $SPIN_SLEEP_TIME \ start $APPLICATION_PATH 2>&1 > /dev/null & RETVAL=$? } stop() { if [ -f $PIDFILE_PATH ]; then echo "Shutting down $APPLICATION_NAME" # Tell Forever to stop the process. forever stop $APPLICATION_PATH 2>&1 > /dev/null # Get rid of the pidfile, since Forever won't do that. rm -f $PIDFILE_PATH RETVAL=$? else echo "$APPLICATION_NAME is not running." RETVAL=0 fi } restart() { stop start } status() { echo `forever list` | grep -q "$APPLICATION_PATH" if [ "$?" -eq "0" ]; then echo "$APPLICATION_NAME is running." RETVAL=0 else echo "$APPLICATION_NAME is not running." RETVAL=3 fi } case "$1" in start) start ;; stop) stop ;; status) status ;; restart) restart ;; *) echo "Usage: {start|stop|status|restart}" exit 1 ;; esac