Skip to content

Instantly share code, notes, and snippets.

@ekmartin
Created April 29, 2015 16:16
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ekmartin/8423b95bb15196e33196 to your computer and use it in GitHub Desktop.
Save ekmartin/8423b95bb15196e33196 to your computer and use it in GitHub Desktop.
slack-irc init.d service
#!/bin/bash
NAME=slack-irc
NODE_BIN_DIR=/usr/bin
NODE_PATH=/usr/lib/node_modules
APPLICATION_DIRECTORY=/home/slack-irc/slack-irc
APPLICATION_START=$APPLICATION_DIRECTORY/index.js
PIDFILE=$APPLICATION_DIRECTORY/pids/$NAME.pid
LOGFILE=$APPLICATION_DIRECTORY/logs/production.log
PATH=$NODE_BIN_DIR:$PATH
export NODE_PATH=$NODE_PATH
export NODE_ENV=production
source $APPLICATION_DIRECTORY/.environment &> /dev/null
start() {
echo "Starting $NAME"
su slack-irc -c "forever start \
--workingDir $APPLICATION_DIRECTORY \
--pidFile $PIDFILE \
--append \
-l $LOGFILE \
--minUptime 5000 \
--spinSleepTime 2000 $APPLICATION_START"
RETVAL=$?
}
stop() {
if [ -f $PIDFILE ]; then
echo "Shutting down $NAME"
su slack-irc -c "forever stop $APPLICATION_START"
rm -f $PIDFILE
RETVAL=$?
else
echo "$NAME is not running."
RETVAL=0
fi
}
restart() {
echo "Restarting $NAME"
stop
start
}
status() {
echo "Status for $NAME:"
su slack-irc -c "forever list"
RETVAL=$?
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
restart
;;
*)
echo "Usage: {start|stop|status|restart}"
exit 1
;;
esac
exit $RETVAL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment