#!/bin/sh LATEST=$SEAF/seafile-server-latest PIDS=$SEAF/pids function stop() { $0 stop } case "$1" in run) if [ ! -e "$LATEST" ]; then (>&2 echo This appears to be the fist run, installing..) $0 run-upgrade else $0 manage-component seaf-server start $LATEST/seafile.sh start $0 manage-component seahub start $LATEST/seahub.sh "${SEAF_HUB_MODE:-start} 8000" & $0 manage-component nginx start nginx & wait fi trap stop SIGINT SIGTERM while pgrep -f "seafile-controller" 2>&1 >/dev/null; do sleep 2; done ;; run-upgrade) $0 upgrade && $0 run ;; stop) $0 manage-component seaf-server stop & $0 manage-component seahub stop & $0 manage-component nginx stop & $0 manage-component ccnet stop & wait ;; stop-upgrade) $0 stop && $0 upgrade ;; upgrade) /usr/local/sbin/upgrade main kill -SIGHUP $(pgrep -o nginx) #Reload nginx ;; manage-component) mkdir -p /var/run/seafile NAME="$2" PIDFILE=/var/run/seafile/$NAME.pid case "$3" in start) CMD="$4"; ARGS="$5" "$CMD $ARGS &" sleep 1 ( ! "$0 $1 $NAME status") && ((>&2 echo Failed to start $NAME); exit 1) PID=$? #echo $PID > /var/run/seafile/$NAME.pid ;; status) ([ -e "$PIDFILE" ] && kill -0 $(cat $PIDFILE) 2> /dev/null && echo Running) || (echo Stopped && exit 1) ;; stop) if "$0 $1 $NAME status"; then kill $(cat $PIDFILE) TRIES=30 while "$0 $1 $NAME status"; do TRIES=$((TRIES - 1)) if [ $TRIES -eq 0 ]; then (>&2 echo Failed to stop $NAME) exit 1 fi sleep 1 done (>&2 echo $NAME has been stopped) else (>&2 echo $NAME is not running) exit 1 fi ;; esac ;; *) (>&2 echo Unknown option $1 options include: run, run-upgrade, upgrade, stop, stop-upgrade) ;; esac