tikv和pd如果挂掉,观察到会自动启动进程,自动化脚本是在哪里,多久检测一次,还是哪个进程在检测的,请大佬帮忙答疑下。
我是tiup部署的,浅薄的研究过一下 ,是 systemd管理,centos的系统进程守护工具
TiDB集群相关的组件进程,在挂后都会自动拉起服务,都是由操作系统systemd 系统管理守护进程统一管理的。系统systemctl 自动拉起时,所调用的执行脚本通常在节点部署目录的script 子目录下。
根据之前的使用经验来看,通常秒级就拉起来,具体间隔多久拉起来可以去查一下。
Systemd
检测 ,每次间隔15s
什么状态下,才会restart进程,处理down,disconect,会重启吗?
守护进程会在系统后台长期运行,定期检查目标进程的状态,当出现非正常运行情况时会去自动重启它。如果目标服务设置了开机自动拉起,也是通过systemd 守护进程来实现拉起。
想起来docker 容器里的 restart-always参数
/etc/systemd/system/目录下
其实是/etc/systemd/system/multi-user.target.wants目录下文件的链接。
当设置了某个服务自启动的时候,就是在往某个target的.wants目录中添加服务项的符号链接而已(默认添加到/etc/systemd/system/multi-user.target.wants)
tiup cluster disable tidb-test 关闭自启动,/etc/systemd/system/multi-user.target.wants目录下tidb相关的文件(链接到/etc/systemd/system/xxxx)就没了。
tiup cluster enable tidb-test 启动自启动。/etc/systemd/system/multi-user.target.wants目录下tidb相关的文件(链接)就会自动加回来。
root@xxxx: /etc/systemd/system/multi-user.target.wants# cat tikv-111111.service
[Unit]
Description=tikv service
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
CPUQuota=100%
LimitNOFILE=1000000
LimitSTACK=10485760
User=tidbtest
ExecStart=/bin/bash -c ‘/test/tidb-deploy/tikv-1111/scripts/run_tikv.sh’
Restart=always
RestartSec=15s
[Install]
WantedBy=multi-user.target
参数解释:
Restart=always
– always:不管是什么退出原因,总是重启
RestartSec=15s
–间隔多久重启服务
部署组件的时候,会自动加上相应组件系统服务。退出后,服务会自动去调用组件的run_xxx.sh重新启动。
这个应该不是脚本控制的,而是程序控制的
楼上是对的,Systemctl 管理服务,默认配置 RestartSec=15s 自启
有没有 心跳程序在呢。
Systemd
检测 ,每次间隔15s
Systemd` 检测 ,每次间隔15s