#!/bin/bash # # arangod Startup script for the ArangoDB Server # # chkconfig: - 85 15 # description: ArangoDB Server # processname: arangod # config: /etc/arangodb3/arangod.conf # Source function library. . /etc/rc.d/init.d/functions . /usr/share/arangodb3/arangodb-helper # Path to the server binary ARANGO_BIN=/usr/sbin/arangod test -x $ARANGO_BIN || ar_exit_by_string EXIT_BINARY_NOT_FOUND ARANGO_SYSCONFIG=/etc/arangodb3/arangod.conf test -r $ARANGO_SYSCONFIG || ar_exit_by_string EXIT_CONFIG_NOT_FOUND pidfile=/var/run/arangodb/arangod.pid RETVAL=0 start() { echo -n $"Starting $ARANGO_BIN: " PIDDIR=`dirname $pidfile` [ -d $PIDDIR ] || mkdir $PIDDIR || ar_ferr "failed to create $PIDDIR" ( cd /var/lib/arangodb3 && chown -R arangodb:arangodb . && chmod 700 .) || ar_ferr "failed to set permissions on /var/lib/arangodb3" ( cd /var/lib/arangodb3-apps && chown -R arangodb:arangodb . && chmod 700 .) || ar_ferr "failed to set permissions on /var/lib/arangodb3-apps" ( cd $PIDDIR && chown arangodb:arangodb . && chmod 700 .) || ar_ferr "failed to set permissions on $PIDDIR" local current=/var/tmp/arangod ( mkdir -p $current && chown -R arangodb:arangodb $current ) || { echo "could not create or set permissions for $current"; exit 1; } ulimit -H -n 131072 || true ulimit -S -n 131072 || true export GLIBCXX_FORCE_NEW=1 case "$1" in "--upgrade") shift $ARANGO_BIN --uid arangodb --gid arangodb --server.rest-server false --database.auto-upgrade true $@ RETVAL=$? ;; "--reopen-logs") shift if test -f $pidfile; then kill -1 `cat $pidfile` fi RETVAL=0 log_end_msg $RETVAL ;; *) $ARANGO_BIN --uid arangodb --gid arangodb --server.rest-server false --log.foreground-tty false --database.check-version RETVAL=$? if [ "$RETVAL" -eq 0 ]; then $ARANGO_BIN --uid arangodb --gid arangodb --log.foreground-tty false --pid-file "$pidfile" --temp.path "/var/tmp/arangod" --supervisor $@ RETVAL=$? fi ;; esac ar_exit_by_num ${RETVAL} } stop() { echo -n $"Stopping $ARANGO_BIN: " killproc -p "${pidfile}" -d 10 $ARANGO_BIN RETVAL=$? ar_ferr "could not kill arangod" $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status -p ${pidfile} $ARANGO_BIN RETVAL=$? ;; restart) stop # will exit on fail start ;; upgrade) echo $"Upgrading ArangoDB database files" start --upgrade ;; reload-log) log_daemon_msg "Re-Opening Logfiles $DESC" "$NAME" start --reopen-logs exit $? ;; *) echo $"Usage: $0 {start|stop|restart|status|help|upgrade}" exit 1 esac exit $RETVAL