最近服务器 redis 偶然会因为内存原因被杀掉,挺麻烦的。 做一个简单的 sh 脚本,每分钟执行一次,检查 redis 进程是否存在。如果不存在就自动开启。
#!/bin/bash logs=/web/logs/check_redis_process.log ps=`ps -efl | grep redis-server | grep -v grep | wc -l` if [ $ps -eq 0 ]; then echo -e "\n$(date '+%Y-%m-%d %H:%M:%S') start " >> $logs /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf >> $logs echo "$(date '+%Y-%m-%d %H:%M:%S') done" >> $logs echo "redis-server start success" else echo "redis-server is run" exit 0; fi
注意:如果在 windows 上编辑脚本后传到服务器,可能会出现换行符不兼容的问题。可用 Notepad++ 来把格式转换。 编辑->文档格式转换->转换为UNIX格式 可解决 上传后,需要添加执行权限
chmod +x check_redis_process.sh
添加到 crontab 一分钟执行一次