这个问题搞了好半天,记录一下,启停都是用的systemctl
起初是测试vip漂移时候发现,主备节点都开启keepalived的状况下,一切正常,主节点的vip也可以访问。
第一次停掉主节点的keepalived程序时,vip顺利漂移到从节点
再次启动主节点keepalived,vip顺利漂移到主节点
*当再停掉主节点keepalived时,发现vip无法漂移到主节点,检查进程时,发现keepalived的进程依然还在
查找keepalived的pid文件,发现已经被干掉了
这时候想到应该是systemd启动服务脚本的问题,查看keepalived的启动service文件
KillMode=process的大致意思是当停止keepalived的时候只停掉主进程,而主进程产生的子进程是不会被干掉的,SSH服务就是这个模式。
killmode的默认值是control-group,意思时所有进程都会被干掉,我这里选择把这项注释掉,使用默认参数
改了service文件需要使用systemctl daemon-reload来重读配置
之后在使用systemctl stop keepalived就不会出现进程还在的情况了
废了这么多话,其实可以使用systemctl kill keepalived来停掉服务,嘿嘿