This is effectively same as WebDav constant errors after GC scipt
The issue seems to be that /seafile-server-latest/seafile.sh contains:
function check_component_running() {
name=$1
cmd=$2
if pid=$(pgrep -f "$cmd" 2>/dev/null); then
echo "[$name] is running, pid $pid. You can stop it by: "
echo
echo " kill $pid"
echo
echo "Stop it and try again."
echo
exit
fi
}
function validate_already_running () {
/-/
check_component_running "seafdav" "wsgidav.server.server_cli"
/-/
}
function kill_all () {
/-/
pkill -f "wsgidav.server.server_cli"
/-/
}
When running pgrep, it does find the running processes:
$ pgrep -f "wsgidav.server.server_cli"
162
164
166
Yet kill does nothing:
$ pkill -f "wsgidav.server.server_cli"
This means when we run seafile.sh stop followed by seafile.sh start, we get following errors in log:
[seafdav] is running, pid 162
164
166. You can stop it by:
kill 162
164
166
Stop it and try again
and seafile no longer starts.
This leaves me to believe the stopping logic is faulty and needs fixing.
Running v11.0.12