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.
75 lines
1.6 KiB
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
|
|
|
|
:
|