1
0
Fork 0
arangodb/Installation/ARM/rc.arangodb

124 lines
2.8 KiB
Bash

#!/bin/sh
### BEGIN INIT INFO
# Provides: arangodb
# Required-Start: $remote_fs $network $named
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: arangodb
# Description: arango database server
### END INIT INFO
. /lib/lsb/init-functions
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/sbin/arangod
DESC="arango database server"
NAME="arangod"
PIDDIR=/var/run/arangodb
PIDFILE=/var/run/arangodb/arangod.pid
CONF=/etc/arangodb/arangod.conf
test -x $DAEMON || exit 0
if [ `id -u` -ne 0 ]; then
echo "You need root privileges to run this script"
exit 1
fi
start () {
[ -d $PIDDIR ] || mkdir $PIDDIR || exit 1
[ -d /var/run/arangodb ] || mkdir /var/run/arangodb || exit 1
( cd /var/log/arangodb3 && chown -R arangodb:arangodb . ) || exit 1
( cd /var/lib/arangodb3 && chown -R arangodb:arangodb . ) || exit 1
( cd /var/lib/arangodb3-apps && chown -R arangodb:arangodb . ) || exit 1
( cd /var/run/arangodb && chown -R arangodb:arangodb . ) || exit 1
( cd $PIDDIR && chown arangodb:arangodb . ) || exit 1
export GLIBCXX_FORCE_NEW=1
if [ "$1" = "--database.auto-upgrade" ]; then
$DAEMON -c $CONF --uid arangodb --gid arangodb --server.rest-server false $@
RETVAL=$?
log_end_msg $RETVAL
else
$DAEMON -c $CONF --uid arangodb --gid arangodb --server.rest-server --log.foreground-tty false --database.check-version true
RETVAL=$?
if [ "$RETVAL" -eq 0 ]; then
$DAEMON -c $CONF --uid arangodb --gid arangodb --pid-file "$PIDFILE" --temp-path "/var/tmp/arangod" --log.foreground-tty false --supervisor true $@
RETVAL=$?
log_end_msg $RETVAL
else
log_failure_msg "database version check failed, maybe need to run 'upgrade'?"
fi
fi
return $RETVAL
}
case "$1" in
start)
log_daemon_msg "Starting $DESC" "$NAME"
start
exit $?
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON
RETVAL=$?
log_end_msg $RETVAL
log_daemon_msg "Waiting for shutdown" ""
c=0
while test -f $PIDFILE -a $c -lt 30 && ps --pid `cat $PIDFILE` > /dev/null; do
log_progress_msg "."
sleep 2
c=`expr $c + 1`
done
log_progress_msg "done"
log_end_msg 0
rm -f $PIDFILE
exit $RETVAL
;;
restart)
$0 stop
sleep 3
$0 start
exit $?
;;
force-reload)
$0 restart
exit $?
;;
status)
status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
;;
upgrade)
log_daemon_msg "Upgrading $DESC" "$NAME"
start --database.auto-upgrade true
exit $?
;;
*)
log_success_msg "Usage: /etc/init.d/arangodb {start|stop|restart|force-reload|status|upgrade}"
exit 1
;;
esac
exit 0