mirror of https://gitee.com/bigwinds/arangodb
124 lines
2.8 KiB
Bash
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
|