Memcached 进程停止挂掉后,自动重启的解决方案

因为内存满载等原因,Memcached 在后台可能出现突然崩溃挂掉的情况。进而影响使用 Memcached 的网站发生崩溃、无法访问。

可利用以下 .sh 脚本实现 Memcached 状态自动检测,在进程停止挂掉后,自动重新 Memcached。

#!/bin/sh
PATH=$PATH:/etc/init.d/memcached
# 用 ps 命令查看 Memcached 进程状态
MM=`ps -aux |grep "memcached" |grep "11211" |grep -v "grep" |wc -l`
# if 语句判断进程是否存在,如不存在,输出日志记录并自动重启 Memcached 服务
if [ "$MM" == "0" ]; 
then
	echo "$(date): Memcached is stop." >> /root/log/memcached.logs
	/etc/init.d/memcached start
else
	echo "$(date): Memcached is ok." >> /root/log/memcached.logs
fi

可将以上脚本保存成 .sh 文件使用。

由于编码等问题,建议使用 Linux 中 vim 或 cat 直接编辑。


注意:如使用宝塔面板,可直接使用以上脚本,如是其他面板或者环境,可参照以下说明自己手动调整:

1、第2行:"/etc/init.d/memcached" 可替换成 memcached 路径地址;

2、第8、11行:"/root/log/memcached.logs" 为 log 文件路径,可根据实际情况做更改;log 文件请提前创建,否则会产生报错;

3、第9行:"/etc/init.d/memcached start" 为 memcached 的启动命令,适用于宝塔面板,其他环境请根据实际情况适当更改。


最后,可将脚本添加到计划任务自动执行。

以下以 “每5分钟执行一次,脚本路径 /root/memcached_check.sh” 添加计划任务命令为例:

*/5 * * * * /bin/bash /root/memcached_check.sh

参考资料:

https://www.bt.cn/new/btcode.html

https://blog.51cto.com/u_15127608/4733782

https://www.binbinbiji.com/zh-cn/jianzhanjiaoliu/2251.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注