1
0
Fork 0
arangodb/Installation/debian/arangodb.init

144 lines
3.2 KiB
Bash
Executable File

#!/bin/sh
### BEGIN INIT INFO
# Provides: arangodb
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# 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
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
( cd /var/log/arangodb3 && chown -R arangodb:arangodb . && chmod 700 . ) || exit 1
( cd /var/lib/arangodb3 && chown -R arangodb:arangodb . && chmod 700 . ) || exit 1
( cd /var/lib/arangodb3-apps && chown -R arangodb:arangodb . && chmod 700 . ) || exit 1
( cd $PIDDIR && chown arangodb:arangodb . && chmod 755 . ) || exit 1
ulimit -H -n 131072 || true
ulimit -S -n 131072 || true
export GLIBCXX_FORCE_NEW=1
case "$1" in
"--upgrade")
shift
$DAEMON --uid arangodb --gid arangodb --server.rest-server false --database.auto-upgrade true $@
RETVAL=$?
log_end_msg $RETVAL
;;
"--reopen-logs")
shift
if test -f $PIDFILE; then
kill -1 `cat $PIDFILE`
fi
RETVAL=0
log_end_msg $RETVAL
;;
*)
$DAEMON --uid arangodb --gid arangodb --server.rest-server false --log.foreground-tty false --database.check-version
RETVAL=$?
if [ "$RETVAL" -eq 0 ]; then
$DAEMON --uid arangodb --gid arangodb --pid-file "$PIDFILE" --temp.path "/var/tmp/arangod" --log.foreground-tty false --supervisor $@
RETVAL=$?
log_end_msg $RETVAL
else
log_failure_msg "database version check failed, maybe you need to run 'upgrade'?"
fi
;;
esac
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 --upgrade
exit $?
;;
reload-log)
log_daemon_msg "Re-Opening Logfiles $DESC" "$NAME"
start --reopen-logs
exit $?
;;
*)
log_success_msg "Usage: /etc/init.d/arangodb3 {start|stop|restart|force-reload|status|upgrade}"
exit 1
;;
esac
exit 0