oceanbase / miniob

MiniOB is a compact database that assists developers in understanding the fundamental workings of a database.
https://oceanbase.github.io/miniob/
Mulan Permissive Software License, Version 2
3.17k stars 1.09k forks source link

[question]能编译成功但observer无法启动 #83

Closed rong961 closed 1 year ago

rong961 commented 1 year ago

问题:miniob在build文件夹下编译成功后未能成功启动observer

init.cpp文件中的第82行,

std::map<std::string, std::string> log_section = properties.get(log_section_name); 其中properties.get()函数似乎没有获取,log_section的size仍为0,想问下是什么原因呢

环境

Windows11,WSL2,Ubuntu22.04 gcc 11.2.0,cmake 3.24.1

运行

yulinux@yu:/mnt/e/github/miniob/build$ make
-- The C compiler identification is GNU 11.2.0
-- The CXX compiler identification is GNU 11.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- This is SOURCE dir 
-- This is BINARY dir 
-- This is Project source dir /mnt/e/github/miniob
-- This is PROJECT_BINARY_DIR dir /mnt/e/github/miniob/build
-- HOME dir: /home/yulinux
-- This is UNIX
Disable debug
CMAKE_CXX_FLAGS is  -Wall -DCMAKE_EXPORT_COMPILE_COMMANDS=1  -O2 -g
CMAKE_INSTALL_PREFIX has been set as /usr/local
Install target dir is /usr/local
Begin to build common
-- This is PROJECT_BINARY_DIR dir /mnt/e/github/miniob/build/deps/common
-- This is PROJECT_SOURCE_DIR dir /mnt/e/github/miniob/deps/common
Use /mnt/e/github/miniob/deps/common/conf/ini.cpp
Use /mnt/e/github/miniob/deps/common/io/io.cpp
Use /mnt/e/github/miniob/deps/common/io/roll_select_dir.cpp
Use /mnt/e/github/miniob/deps/common/lang/bitmap.cpp
Use /mnt/e/github/miniob/deps/common/lang/mutex.cpp
Use /mnt/e/github/miniob/deps/common/lang/string.cpp
Use /mnt/e/github/miniob/deps/common/log/log.cpp
Use /mnt/e/github/miniob/deps/common/math/md5.cpp
Use /mnt/e/github/miniob/deps/common/math/random_generator.cpp
Use /mnt/e/github/miniob/deps/common/math/regex.cpp
Use /mnt/e/github/miniob/deps/common/metrics/console_reporter.cpp
Use /mnt/e/github/miniob/deps/common/metrics/histogram_snapshot.cpp
Use /mnt/e/github/miniob/deps/common/metrics/log_reporter.cpp
Use /mnt/e/github/miniob/deps/common/metrics/metrics.cpp
Use /mnt/e/github/miniob/deps/common/metrics/metrics_registry.cpp
Use /mnt/e/github/miniob/deps/common/metrics/reporter.cpp
Use /mnt/e/github/miniob/deps/common/metrics/reservoir.cpp
Use /mnt/e/github/miniob/deps/common/metrics/sampler.cpp
Use /mnt/e/github/miniob/deps/common/metrics/timer_snapshot.cpp
Use /mnt/e/github/miniob/deps/common/metrics/uniform_reservoir.cpp
Use /mnt/e/github/miniob/deps/common/mm/mem_pool.cpp
Use /mnt/e/github/miniob/deps/common/os/os.cpp
Use /mnt/e/github/miniob/deps/common/os/path.cpp
Use /mnt/e/github/miniob/deps/common/os/pidfile.cpp
Use /mnt/e/github/miniob/deps/common/os/process.cpp
Use /mnt/e/github/miniob/deps/common/os/process_param.cpp
Use /mnt/e/github/miniob/deps/common/os/signal.cpp
Use /mnt/e/github/miniob/deps/common/seda/callback.cpp
Use /mnt/e/github/miniob/deps/common/seda/event_dispatcher.cpp
Use /mnt/e/github/miniob/deps/common/seda/example_stage.cpp
Use /mnt/e/github/miniob/deps/common/seda/init.cpp
Use /mnt/e/github/miniob/deps/common/seda/kill_thread.cpp
Use /mnt/e/github/miniob/deps/common/seda/metrics_report_event.cpp
Use /mnt/e/github/miniob/deps/common/seda/metrics_stage.cpp
Use /mnt/e/github/miniob/deps/common/seda/seda_config.cpp
Use /mnt/e/github/miniob/deps/common/seda/stage.cpp
Use /mnt/e/github/miniob/deps/common/seda/stage_event.cpp
Use /mnt/e/github/miniob/deps/common/seda/thread_pool.cpp
Use /mnt/e/github/miniob/deps/common/seda/timer_stage.cpp
Use /mnt/e/github/miniob/deps/common/time/datetime.cpp
Use /mnt/e/github/miniob/deps/common/time/timeout_info.cpp
-- This is the func_static OUTPUT_NAME:common
Install conf/ini.h to /usr/local/common/include/conf
Install defs.h to /usr/local/common/include/
Install io/io.h to /usr/local/common/include/io
Install io/roll_select_dir.h to /usr/local/common/include/io
Install io/select_dir.h to /usr/local/common/include/io
Install lang/bitmap.h to /usr/local/common/include/lang
Install lang/defer.h to /usr/local/common/include/lang
Install lang/mutex.h to /usr/local/common/include/lang
Install lang/serializable.h to /usr/local/common/include/lang
Install lang/string.h to /usr/local/common/include/lang
Install log/log.h to /usr/local/common/include/log
Install math/md5.h to /usr/local/common/include/math
Install math/random_generator.h to /usr/local/common/include/math
Install math/regex.h to /usr/local/common/include/math
Install metrics/console_reporter.h to /usr/local/common/include/metrics
Install metrics/histogram_snapshot.h to /usr/local/common/include/metrics
Install metrics/log_reporter.h to /usr/local/common/include/metrics
Install metrics/metric.h to /usr/local/common/include/metrics
Install metrics/metrics.h to /usr/local/common/include/metrics
Install metrics/metrics_registry.h to /usr/local/common/include/metrics
Install metrics/reporter.h to /usr/local/common/include/metrics
Install metrics/reservoir.h to /usr/local/common/include/metrics
Install metrics/sampler.h to /usr/local/common/include/metrics
Install metrics/snapshot.h to /usr/local/common/include/metrics
Install metrics/timer_snapshot.h to /usr/local/common/include/metrics
Install metrics/uniform_reservoir.h to /usr/local/common/include/metrics
Install mm/debug_new.h to /usr/local/common/include/mm
Install mm/mem.h to /usr/local/common/include/mm
Install mm/mem_pool.h to /usr/local/common/include/mm
Install os/os.h to /usr/local/common/include/os
Install os/path.h to /usr/local/common/include/os
Install os/pidfile.h to /usr/local/common/include/os
Install os/process.h to /usr/local/common/include/os
Install os/process_param.h to /usr/local/common/include/os
Install os/signal.h to /usr/local/common/include/os
Install seda/callback.h to /usr/local/common/include/seda
Install seda/class_factory.h to /usr/local/common/include/seda
Install seda/event_dispatcher.h to /usr/local/common/include/seda
Install seda/example_stage.h to /usr/local/common/include/seda
Install seda/init.h to /usr/local/common/include/seda
Install seda/kill_thread.h to /usr/local/common/include/seda
Install seda/metrics_report_event.h to /usr/local/common/include/seda
Install seda/metrics_stage.h to /usr/local/common/include/seda
Install seda/seda_config.h to /usr/local/common/include/seda
Install seda/seda_defs.h to /usr/local/common/include/seda
Install seda/stage.h to /usr/local/common/include/seda
Install seda/stage_event.h to /usr/local/common/include/seda
Install seda/stage_factory.h to /usr/local/common/include/seda
Install seda/thread_pool.h to /usr/local/common/include/seda
Install seda/timer_stage.h to /usr/local/common/include/seda
Install time/datetime.h to /usr/local/common/include/time
Install time/timeout_info.h to /usr/local/common/include/time
Install version.h to /usr/local/common/include/
Begin to build miniob
-- This is PROJECT_BINARY_DIR dir /mnt/e/github/miniob/build/src
-- This is PROJECT_SOURCE_DIR dir /mnt/e/github/miniob/src
Begin to build obclient
-- Looking for include files stdio.h, readline/readline.h
-- Looking for include files stdio.h, readline/readline.h - not found
readline is not found
Use /mnt/e/github/miniob/src/obclient/client.cpp
Binary directory:/mnt/e/github/miniob/build/src/../bin
Begin to build observer
-- This is PROJECT_BINARY_DIR dir /mnt/e/github/miniob/build/src/observer
-- This is PROJECT_SOURCE_DIR dir /mnt/e/github/miniob/src/observer
MAIN SRC: /mnt/e/github/miniob/src/observer/main.cpp
Use /mnt/e/github/miniob/src/observer/event/session_event.cpp
Use /mnt/e/github/miniob/src/observer/event/sql_event.cpp
Use /mnt/e/github/miniob/src/observer/init.cpp
Use /mnt/e/github/miniob/src/observer/main.cpp
Use /mnt/e/github/miniob/src/observer/net/server.cpp
Use /mnt/e/github/miniob/src/observer/rc.cpp
Use /mnt/e/github/miniob/src/observer/session/session.cpp
Use /mnt/e/github/miniob/src/observer/session/session_stage.cpp
Use /mnt/e/github/miniob/src/observer/sql/executor/execute_stage.cpp
Use /mnt/e/github/miniob/src/observer/sql/expr/expression.cpp
Use /mnt/e/github/miniob/src/observer/sql/expr/tuple_cell.cpp
Use /mnt/e/github/miniob/src/observer/sql/operator/delete_operator.cpp
Use /mnt/e/github/miniob/src/observer/sql/operator/index_scan_operator.cpp
Use /mnt/e/github/miniob/src/observer/sql/operator/insert_operator.cpp
Use /mnt/e/github/miniob/src/observer/sql/operator/predicate_operator.cpp
Use /mnt/e/github/miniob/src/observer/sql/operator/project_operator.cpp
Use /mnt/e/github/miniob/src/observer/sql/operator/table_scan_operator.cpp
Use /mnt/e/github/miniob/src/observer/sql/optimizer/optimize_stage.cpp
Use /mnt/e/github/miniob/src/observer/sql/parser/lex.yy.c
Use /mnt/e/github/miniob/src/observer/sql/parser/parse.cpp
Use /mnt/e/github/miniob/src/observer/sql/parser/parse_stage.cpp
Use /mnt/e/github/miniob/src/observer/sql/parser/resolve_stage.cpp
Use /mnt/e/github/miniob/src/observer/sql/parser/yacc_sql.tab.c
Use /mnt/e/github/miniob/src/observer/sql/plan_cache/plan_cache_stage.cpp
Use /mnt/e/github/miniob/src/observer/sql/query_cache/query_cache_stage.cpp
Use /mnt/e/github/miniob/src/observer/sql/stmt/delete_stmt.cpp
Use /mnt/e/github/miniob/src/observer/sql/stmt/filter_stmt.cpp
Use /mnt/e/github/miniob/src/observer/sql/stmt/insert_stmt.cpp
Use /mnt/e/github/miniob/src/observer/sql/stmt/select_stmt.cpp
Use /mnt/e/github/miniob/src/observer/sql/stmt/stmt.cpp
Use /mnt/e/github/miniob/src/observer/sql/stmt/update_stmt.cpp
Use /mnt/e/github/miniob/src/observer/storage/common/condition_filter.cpp
Use /mnt/e/github/miniob/src/observer/storage/common/db.cpp
Use /mnt/e/github/miniob/src/observer/storage/common/field_meta.cpp
Use /mnt/e/github/miniob/src/observer/storage/common/index_meta.cpp
Use /mnt/e/github/miniob/src/observer/storage/common/meta_util.cpp
Use /mnt/e/github/miniob/src/observer/storage/common/record_manager.cpp
Use /mnt/e/github/miniob/src/observer/storage/common/table.cpp
Use /mnt/e/github/miniob/src/observer/storage/common/table_meta.cpp
Use /mnt/e/github/miniob/src/observer/storage/default/default_handler.cpp
Use /mnt/e/github/miniob/src/observer/storage/default/default_storage_stage.cpp
Use /mnt/e/github/miniob/src/observer/storage/default/disk_buffer_pool.cpp
Use /mnt/e/github/miniob/src/observer/storage/index/bplus_tree.cpp
Use /mnt/e/github/miniob/src/observer/storage/index/bplus_tree_index.cpp
Use /mnt/e/github/miniob/src/observer/storage/index/index.cpp
Use /mnt/e/github/miniob/src/observer/storage/mem/mem_storage_stage.cpp
Use /mnt/e/github/miniob/src/observer/storage/trx/trx.cpp
Use /mnt/e/github/miniob/src/observer/util/comparator.cpp
Binary directory:/mnt/e/github/miniob/build/src/observer/../../bin
Archive directory:/mnt/e/github/miniob/build/src/observer/../../lib
Begin to build test
-- This is PROJECT_BINARY_DIR dir /mnt/e/github/miniob/build/test/perf
-- This is PROJECT_SOURCE_DIR dir /mnt/e/github/miniob/test/perf
 -Wall -DCMAKE_EXPORT_COMPILE_COMMANDS=1  -O2 -g
Build client_performance_test according to /mnt/e/github/miniob/test/perf/client_performance_test.cpp
Begin to build unitest
-- This is PROJECT_BINARY_DIR dir /mnt/e/github/miniob/build/unitest
-- This is PROJECT_SOURCE_DIR dir /mnt/e/github/miniob/unitest
 -Wall -DCMAKE_EXPORT_COMPILE_COMMANDS=1  -O2 -g
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
Build bitmap_test according to /mnt/e/github/miniob/unitest/bitmap_test.cpp
Build bp_manager_test according to /mnt/e/github/miniob/unitest/bp_manager_test.cpp
Build bplus_tree_test according to /mnt/e/github/miniob/unitest/bplus_tree_test.cpp
Build log_test according to /mnt/e/github/miniob/unitest/log_test.cpp
Build md5_test according to /mnt/e/github/miniob/unitest/md5_test.cpp
Build mem_pool_test according to /mnt/e/github/miniob/unitest/mem_pool_test.cpp
Build path_test according to /mnt/e/github/miniob/unitest/path_test.cpp
Build pidfile_test according to /mnt/e/github/miniob/unitest/pidfile_test.cpp
Build rc_test according to /mnt/e/github/miniob/unitest/rc_test.cpp
Build record_manager_test according to /mnt/e/github/miniob/unitest/record_manager_test.cpp
-- Configuring done
-- Generating done
-- Build files have been written to: /mnt/e/github/miniob/build
Consolidate compiler generated dependencies of target common
[ 21%] Built target common
Consolidate compiler generated dependencies of target common_static
[ 41%] Built target common_static
Consolidate compiler generated dependencies of target obclient
[ 42%] Built target obclient
Consolidate compiler generated dependencies of target observer
[ 66%] Built target observer
Consolidate compiler generated dependencies of target observer_static
[ 90%] Built target observer_static
Consolidate compiler generated dependencies of target client_performance_test
[ 91%] Built target client_performance_test
Consolidate compiler generated dependencies of target bitmap_test
[ 91%] Built target bitmap_test
Consolidate compiler generated dependencies of target bp_manager_test
[ 92%] Built target bp_manager_test
Consolidate compiler generated dependencies of target bplus_tree_test
[ 93%] Built target bplus_tree_test
Consolidate compiler generated dependencies of target log_test
[ 94%] Built target log_test
Consolidate compiler generated dependencies of target md5_test
[ 95%] Built target md5_test
Consolidate compiler generated dependencies of target mem_pool_test
[ 96%] Built target mem_pool_test
Consolidate compiler generated dependencies of target path_test
[ 97%] Built target path_test
Consolidate compiler generated dependencies of target pidfile_test
[ 98%] Built target pidfile_test
Consolidate compiler generated dependencies of target rc_test
[ 99%] Built target rc_test
Consolidate compiler generated dependencies of target record_manager_test
[100%] Built target record_manager_test
yulinux@yu:/mnt/e/github/miniob/build$ ./bin/observer -s miniob.sock -f observer.ini
Successfully load observer.ini
Not set log file name, use default observer.log
Output configuration
Begin dump configuration
[]

Finish dump configuration

Extend one pool, this->size:128, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:256, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:384, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:512, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:640, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:768, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:896, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:1024, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:1152, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:1280, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:1408, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:1536, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:1664, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:1792, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:1920, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:2048, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:2176, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:2304, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:2432, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:2560, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:2688, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:2816, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:2944, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:3072, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:3200, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:3328, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:3456, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:3584, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:3712, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:3840, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:3968, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:4096, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:4224, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:4352, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:4480, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:4608, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:4736, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:4864, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:4992, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:5120, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:5248, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:5376, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:5504, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:5632, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:5760, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:5888, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:6016, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:6144, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:6272, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:6400, item_num_per_pool:128, this->name:BufPool.
Extend one pool, this->size:6400, item_num_per_pool:128, this->name:BufPool.
(Re)Starting State: Pid: 271 Time: Tue Sep 20 10:24:52 2022

The process Name is observer
Successfully init_event_history, EventHistory:0, MaxEventHops:100
Configuration hasn't set ThreadPools
Failed to init thread pool

SedaConfig: unable to initialize seda stages
Failed to init seda configuration!
Shutdown due to failed to init!
Successfully do cleanup, this->name:BufPool.
Shutdown Cleanly!
yulinux@yu:/mnt/e/github/miniob/build$ ps -A
  PID TTY          TIME CMD
    1 ?        00:00:00 init
    9 tty1     00:00:00 init
   10 tty1     00:00:00 bash
  272 tty1     00:00:00 ps
hnwyllmm commented 1 year ago

./bin/observer -s miniob.sock -f observer.ini 看起来这个配置文件 observer.ini 不存在或者是空文件,可以确认一下吗

rong961 commented 1 year ago

/etc/observer.ini文件如下

# observer's configuration

# log part
[LOG]
# log file's name, default is ${process_name_}.log
LOG_FILE_NAME = observer.log
#  LOG_LEVEL_PANIC = 0,
#  LOG_LEVEL_ERR = 1,
#  LOG_LEVEL_WARN = 2,
#  LOG_LEVEL_INFO = 3,
#  LOG_LEVEL_DEBUG = 4,
#  LOG_LEVEL_TRACE = 5,
#  LOG_LEVEL_LAST
# output log level, default is LOG_LEVEL_INFO
LOG_FILE_LEVEL=3
LOG_CONSOLE_LEVEL=1
# the module's log will output whatever level used.
#DefaultLogModules="server.cpp,client.cpp"

# seda's configuration
[SEDA_BASE]
# record every event
EventHistory=false
# max history event's number, default is 100
MaxEventHistoryNum=100
# threadpools' name, it will contain the threadpool's section
ThreadPools=SQLThreads,IOThreads,DefaultThreads
# stage list
STAGES=SessionStage,ExecuteStage,OptimizeStage,ParseStage,ResolveStage,\
PlanCacheStage,QueryCacheStage,DefaultStorageStage,MemStorageStage,\
TimerStage,MetricsStage

[NET]
CLIENT_ADDRESS=INADDR_ANY
MAX_CONNECTION_NUM=8192
PORT=6789

[SQLThreads]
# the thread number of this threadpool, 0 means cpu's cores.
# if miss the setting of count, it will use cpu's core number;
count=3
#count=0

[IOThreads]
# the thread number of this threadpool, 0 means cpu's cores.
# if miss the setting of count, it will use cpu's core number;
count=3
#count=0

[DefaultThreads]
# If Stage haven't set threadpool, it will use this threadpool
# This threadpool is used for backend operation, such as timer, sedastats and so on.
# the thread number of this threadpool, 0 means cpu's cores.
# if miss the setting of count, it will use cpu's core number;
count=3
#count=0

[SessionStage]
ThreadId=SQLThreads
NextStages=PlanCacheStage

[PlanCacheStage]
ThreadId=SQLThreads
#NextStages=OptimizeStage
NextStages=ParseStage

[ParseStage]
ThreadId=SQLThreads
NextStages=ResolveStage

[ResolveStage]
ThreadId=SQLThreads
NextStages=QueryCacheStage

[QueryCacheStage]
ThreadId=SQLThreads
NextStages=OptimizeStage

[OptimizeStage]
ThreadId=SQLThreads
NextStages=ExecuteStage

[ExecuteStage]
ThreadId=SQLThreads
NextStages=DefaultStorageStage,MemStorageStage

[DefaultStorageStage]
ThreadId=IOThreads
BaseDir=./miniob
SystemDb=sys

[MemStorageStage]
ThreadId=IOThreads

[MetricsStage]
NextStages=TimerStage
rong961 commented 1 year ago

谢谢,我们已经解决了,是文件目录写错了,用这个可以启动了

./bin/observer -s miniob.sock -f ../etc/observer.ini