You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
doushio/docs/doushio.initscript.example

75 lines
1.6 KiB

#! /bin/sh
### BEGIN INIT INFO
# Provides: doushio
# Required-Start: redis-server
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Custom init wrapper script for the doushio image board node.js server
# Description: Custom init wrapper script for the doushio image board node.js server
### END INIT INFO
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="doushio image board node.js server"
NAME=doushio
USER=doushio
DOUSHIO_DIR=/home/${USER}/server
NODE=/usr/bin/node
DAEMON=${DOUSHIO_DIR}/server/server.js
SCRIPTNAME=/etc/init.d/$NAME
LOG=/var/log/doushio.error.log
do_start()
{
if ps -p $(cat ${DOUSHIO_DIR}/doushio.pid) >/dev/null; then
do_stop
fi
if [ ! -f $LOG ]; then
touch $LOG
chown $USER $LOG
fi
su -l $USER -c "echo [`date -u +%Y-%m-%dT%T.%3NZ`] Starting >> $LOG
cd $DOUSHIO_DIR
$NODE server/server.js 1>/dev/null 2>>$LOG &
echo \$! > doushio.pid
$NODE archive/daemon.js 1>/dev/null 2>>$LOG &
echo \$! > doushio.archive.pid" $USER
}
do_stop()
{
kill $(cat ${DOUSHIO_DIR}/doushio.archive.pid)
kill $(cat ${DOUSHIO_DIR}/doushio.pid)
su -l $USER -c "echo [`date -u +%Y-%m-%dT%T.%3NZ`] Stopping >> $LOG"
}
do_reload()
{
su -l $USER -c "cd $DOUSHIO_DIR; $NODE server/kill.js --pid doushio.pid"
}
case "$1" in
start)
echo "Starting $DESC"
do_start
;;
stop)
echo "Stopping $DESC"
do_stop
;;
restart)
echo "Restarting $DESC"
do_start
;;
reload)
echo "Reloading $DESC"
do_reload
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
exit 3
;;
esac
: