I keep dig into the issue and get the problem solved.
Here is what I found.
I check the running processes, and found the seafevents and elasticsearch processes are not running.
Then I check the start up sequence in the controller.log:
Here is an abnormal one:
[05/07/19 01:59:13] seafile-controller.c(184): starting ccnet-server ...
[05/07/19 01:59:13] seafile-controller.c(88): spawn_process: ccnet-server -F /home/teng/haiwen/conf -c /home/teng/haiwen/ccnet -f /home/teng/haiwen/logs/ccnet.log -d -L /home/teng/haiwen -P /home/teng/haiwen/pids/ccnet.pid
[05/07/19 01:59:13] seafile-controller.c(103): spawned ccnet-server, pid 6851
[05/07/19 01:59:14] seafile-controller.c(779): ccnet daemon connected.
[05/07/19 01:59:14] seafile-controller.c(218): starting seaf-server ...
[05/07/19 01:59:14] seafile-controller.c(88): spawn_process: seaf-server -F /home/teng/haiwen/conf -c /home/teng/haiwen/ccnet -d /home/teng/haiwen/seafile-data -l /home/teng/haiwen/logs/seafile.log -P /home/teng/haiwen/pids/seaf-server.pid -f -L /home/teng/haiwen
[05/07/19 01:59:14] seafile-controller.c(103): spawned seaf-server, pid 6853
[05/07/19 01:59:14] seafile-controller.c(747): seafdav is not enabled
Here is an normal one:
[04/27/19 22:29:09] seafile-controller.c(184): starting ccnet-server ...
[04/27/19 22:29:09] seafile-controller.c(88): spawn_process: ccnet-server -F /home/teng/haiwen/conf -c /home/teng/haiwen/ccnet -f /home/teng/haiwen/logs/ccnet.log -d -L /home/teng/haiwen -P /home/teng/haiwen/pids/ccnet.pid
[04/27/19 22:29:09] seafile-controller.c(103): spawned ccnet-server, pid 1530
[04/27/19 22:29:10] seafile-controller.c(779): ccnet daemon connected.
[04/27/19 22:29:10] seafile-controller.c(218): starting seaf-server ...
[04/27/19 22:29:10] seafile-controller.c(88): spawn_process: seaf-server -F /home/teng/haiwen/conf -c /home/teng/haiwen/ccnet -d /home/teng/haiwen/seafile-data -l /home/teng/haiwen/logs/seafile.log -P /home/teng/haiwen/pids/seaf-server.pid -f -L /home/teng/haiwen
[04/27/19 22:29:10] seafile-controller.c(103): spawned seaf-server, pid 1698
[04/27/19 22:29:10] seafile-controller.c(592): pid file /home/teng/haiwen/pids/seafevents.pid does not exist
[04/27/19 22:29:10] seafile-controller.c(88): spawn_process: /usr/bin/python2.7 -m seafevents.main --config-file /home/teng/haiwen/conf/seafevents.conf --logfile /home/teng/haiwen/logs/seafevents.log -P /home/teng/haiwen/pids/seafevents.pid
[04/27/19 22:29:10] seafile-controller.c(103): spawned /usr/bin/python2.7, pid 1699
[04/27/19 22:29:10] seafile-controller.c(747): seafdav is not enabled
[04/27/19 22:29:10] seafile-controller.c(592): pid file /home/teng/haiwen/pids/elasticsearch.pid does not exist
[04/27/19 22:29:10] seafile-controller.c(88): spawn_process: /home/teng/haiwen/seafile-pro-server-6.3.13/pro/elasticsearch/bin/elasticsearch -Des.path.logs=/home/teng/haiwen/logs -Des.path.data=/home/teng/haiwen/pro-data/search/data -Des.network.host=127.0.0.1 -Des.insecure.allow.root=true -p /home/teng/haiwen/pids/elasticsearch.pid
[04/27/19 22:29:10] seafile-controller.c(103): spawned /home/teng/haiwen/seafile-pro-server-6.3.13/pro/elasticsearch/bin/elasticsearch, pid 1700
Apparently, the seafevents and elasticsearch process are not running.
Then I stop the seafile server, manually delete the pid files: elasticsearch.pid and seafevents.pid, in the pids folder, and restart the server again. Everything gets back to normal.
So, the root cause is: last time when I reboot the server, the seafile processes do not shutdown properly. As a result, elasticsearch.pid and seafevents.pid are not clean up. The next time when I try to start the seafile server, the seafile-controller thinks seafevents and elasticsearch are running, so skipping running them.
So here is the bug: seafile-controller should check whether the process storing in the pid file exists or not, rather than the pid file exists or not, to decide if seafevents and elasticsearch need to run or not. @daniel.pan