IoTDB看门狗配置后不生效
问题现象
使用时序数据库 IoTDB 安装包自带的脚本 daemon-confignode.sh 和 daemon-datanode.sh 配置看门狗后,使用“kill -9 ConfigNode 进程号 DataNode 进程号”的方式杀掉数据库进程后,数据库进程不会自动重启。
原因
执行脚本后,默认生成的 service 文件中的 RestartPreventExitStatus=SIGKILL,表示如果服务退出状态码为 SIGKILL(信号 9),则不会重启服务,所以数据库进程不会自动重启。
解决方案
- 执行完 daemon-confignode.sh 和 daemon-datanode.sh 后,数据库进程服务其实还没有被 systemd 接管,这时需要先把 ConfigNode 和 DataNode 服务手动停一下,然后使用下面的命令启动服务,这样数据库进程就会被 systemd 接管了。
systemctl start iotdb-confignode.service
systemctl start iotdb-datanode.service
- 修改 /etc/systemd/system/iotdb-confignode.service 和 /etc/systemd/system/iotdb-datanode.service 中的内容,把 RestartPreventExitStatus=SIGKILL 这一行注释掉。
- 修改完脚本后执行以下命令使修改生效。
systemctl daemon-reload
上面的步骤执行完成后,这时再杀掉数据库进程,看门狗就可以自动拉起数据库服务了。