83 lines
1.8 KiB
Bash
Executable File
83 lines
1.8 KiB
Bash
Executable File
#!/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
|