小伙伴们在下载keepalived之后难免会遇到一个问题,就是当我们用systemctl stop keepalived干掉进程的时候,为什么干掉不了。用ps -ef | grep keepalived 查看进程还在!!就好比跟女朋友分手,一直分不干净。给人一种剪不断,理还乱的感觉,这让小编深感难受。但是我们写程序的,不必要果断干脆,分必须分干净,停掉应用必须停掉!下面我就演示一下出现问题的过程。

步骤一:查看keepalived的状态

绿色,running 表示 keepalived正在运行。

步骤二:关掉keepalived

systemctl stop keepalived 关闭命令

步骤三:查看keepalived状态和进程

当我们再次查看keepalived的状态时,发现它已经处于关闭的状态!!!注意:这个时候会给我们一个假意识。虽然的dead的状态。意思是主进程已经关闭,但是它还有子进程没有关闭。

我们用ps -ef | grep keepalived 查看进程,发现还有3个进程没有关闭。这个时候就会有人产生疑问。下面明明是4个进程,你为什么要说是3个呢?因为最后一个进程是我们用grep查找的进程号。大家注意一下这一点。

所以当我们用keepalived测试nginx的主节点挂掉,会不会直接连同从节点时,发现前端页面会报错,未找到链接。所以,这就是一个大坑啊!接下来我来教大家怎么解决这个问题。

解决方案:

方法一:pkill -9 keepalived 杀掉进程

发现通过pkill命令关闭,只剩下grep查找的进程了。说明我们的keeplived主子进程都通通噶干掉了。

方法二:修改keepalived.service配置文件。我们依然可以用systemctl命令关闭!

首先,我们进入cd /usr/lib/systemd/system目录下,找到下面服务

然后修改配置文件内容,原因就是因为关闭模式为process,大致意思是只关掉主进程,而子进程不会被杀死。我们把这个模式改为control-group就可以了。修改好配置文件记得重新加载一下配置文件内容。

重新加载配置文件

接下来我们试一试systemctl命令停掉keepalived进程。可以看到keepalived的主子进程全部干掉了。

希望能给未来的各位大佬提供一点点帮助。觉得有用的话可以点点关注,点点赞。小编会时长更新一些常用的小知识!!

最后谢谢各位的观看!!!