Linux设置开机自启keepalived+nginx服务

news/2024/7/7 20:45:01

目录:

目录

背景:

分析过程:

解决方案: 

解决方案一: 

解决方案二:


背景:

在工作突发遇见了Linux虚拟机所在的宿主机重启了,虚拟机上部署nginx+keepalived服务,但是宿主机重启之后发现虚拟机重启了,但是在虚拟机上部署的nginx服务和keepalived服务没有起来,经过分析发现是因为设置的开机自启脚本存在问题导致的。

分析过程:

首选通过who -b查看最近的虚拟机重启的时间节点

[root@localhosts ~]# who -b
         system boot  2023-02-08 10:47
[root@localhosts ~]# who -r
         run-level 3  2023-02-08 10:48

注:

who -b  :---查看最后一次(上次)系统启动的时间

who -r :---查看最后一次(上次)系统启动的时间,及运行级别

 检查nginx服务和keepalived服务的运行状态

[root@localhosts ~]# ps -ef | grep nginx
root      25312  25095  0 11:32 pts/2    00:00:00 grep --color=auto nginx
[root@localhosts ~]# ps -ef | grep keepalived
root      25397  25095  0 11:32 pts/2    00:00:00 grep --color=auto keepalived

注: 发现nginx服务和keepalived服务都没有开机自启运行起来。

检查开机配置是否设置

[root@localhosts ~]# cat /etc/rc.d/rc.local 
#!/bin/bash
/usr/sbin/keepalived -D

注:发现keepalived的有设置开机,但是为什么keepalived服务也没有起来呢?

一般情况下keepalived运行的时候都会做一个检查脚本,脚本通过之后就运行起keepalived的,是否需要杀掉运行的keepalived服务。

检查keepalived服务的检查脚本:

[root@localhosts keepalived]# cat /etc/keepalived/check_nginx.sh 
#! /bin/bash
num=`netstat -an | grep "0.0.0.0:8022"|wc -l`
if [ $num -eq 0 ]; then
    su - mwop -c "/app/nginx/bin/nginx.sh start"
    sleep 3
    num=`netstat -an | grep "0.0.0.0:8022"|wc -l`
    if [ $num -eq 0 ]; then
        killall keepalived
    fi
fi 

注:发现keepalived的检查脚本存在问题,因为nginx服务的启动路径是

sh /app/server/nginx/bin/nginx.sh start

这样的话,虽然开机自启了keepalived服务,但是因为keepalived服务的检查脚本检验不通过导致keepalived服务停止运行,同时nginx服务没有单独的自启脚本,所以就导致了nginx服务和keepalived服务都是无运行的状态。

解决方案: 

因为已经分析到了原因,就是keepalived的检查脚本有问题,所以只要修复keepalived的检查脚本即可,但是如果还想为了更全面的考虑,可以在/etc/rc.d/rc.local脚本中再加入nginx的启动命令,这样就做到了万无一失的效果,下面的两种解决方案都会写一下的,以供各位参考。

解决方案一: 

 修复后的keepalived的检查脚本如下:

[root@localhosts keepalived]# cat /etc/keepalived/check_nginx.sh 
#! /bin/bash
num=`netstat -an | grep "0.0.0.0:8022"|wc -l`
if [ $num -eq 0 ]; then
    su - mwop -c "/app/server/nginx/bin/nginx.sh start"
    sleep 3
    num=`netstat -an | grep "0.0.0.0:8022"|wc -l`
    if [ $num -eq 0 ]; then
        killall keepalived
    fi
fi 

注:这样就可以了,可以重启一下虚拟机验证一下是否可以开机自启起来nginx服务和keepalived服务。

解决方案二:

修复keepalived的检查脚本,同时在/etc/rc.d/rc.local中加入nginx服务的启动命令

[root@localhosts keepalived]# cat /etc/keepalived/check_nginx.sh 
#! /bin/bash
num=`netstat -an | grep "0.0.0.0:8022"|wc -l`
if [ $num -eq 0 ]; then
    su - mwop -c "/app/server/nginx/bin/nginx.sh start"
    sleep 3
    num=`netstat -an | grep "0.0.0.0:8022"|wc -l`
    if [ $num -eq 0 ]; then
        killall keepalived
    fi
fi 

 

[root@localhosts ~]# cat /etc/rc.d/rc.local 
#!/bin/bash
/usr/sbin/keepalived -D
su - mwop -c "/app/server/nginx/bin/nginx.sh start"

注:这样做的意义是给nginx服务的启动增加了两层保障。


http://lihuaxi.xjx100.cn/news/836908.html

相关文章

Hudi(21):Hudi集成Flink之核心原理分析

目录 0. 相关文章链接 1. 数据去重原理 1.1. 消息版本新旧 1.2. 攒消息阶段的去重 1.3. 写 parquet 增量消息的去重 1.4. 跨 partition 的消息去重 2. 表写入原理 2.1. 数据写入分析 2.2. 数据压缩 2.3. 数据清理 2.4. Job图 3. 表读取原理 0. 相关文章链接 Hudi文…

Hadoop三大框架

一、Hadoop是什么Hadoop是一个由apache开发的分布式系统基础架构。主要解决海量数据的存储和海量数据的分析计算问题。广义上来说,Hadoop通胀指一个更宽泛的概念——Hadoop生态圈1、Hadoop优势高可靠性:Hadoop底层维护多个数据副本,即使Hadoo…

es-Mapping

文章目录es-Mapping概念查看mappingES数据类型两种映射类型映射参数es-Mapping 概念:映射是定义文档及其包含的字段的存储和索引方式的过程两种映射方式 dynamic mapping(动态映射或自动映射)expllcit mapping (静态映射或手动映…

java商城源码_java 多商户商城系统源码分享

三勾商城多商户是开发友好的微信小程序商城,框架支持SAAS,支持发布 iOS Android 公众号 H5 各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)等多个平台,不可多得的二开神器, 为大中小企业提供极致的移…

超详细的JAVA高级进阶基础知识01

目录 1. 面向对象高级01 1.1 static 关键字 1.1.1 static 关键字的介绍 1.1.2 static 修饰成员的特点 1.1.3 static 关键字总结 1.2 继承 1.2.1 继承介绍 1.2.2 继承 - 学习路径 1.2.3 继承中的成员访问特点 - 成员变量 1.2.4 继承中的成员访问特点 - 成员方法 1.…

互联网摸鱼日报(2023-02-08)

互联网摸鱼日报(2023-02-08) InfoQ 热门话题 “赋能制造 因你而耀”第六届全国工业互联网数据创新应用大赛算法赛题上新! 全球化安全生产 & 质量保障体系建设探索 B2B跨境支付平台XTransfer的质量保障体系建设之路:测试的左…

Cannot read property ‘getDisplayMedia‘ of undefined

文章目录一、问题出现原因二、解决方法方法一:方法二:三、其他注意事项今天在把项目部署到服务器上的时候,突然发现直播功能失效了,在本地跑是没有问题的,找了半天终于知道是什么原因了,即 Cannot read pro…

Vue3电商项目实战-首页模块5【18-首页主体-轮播图-逻辑封装、19-首页主体-面板封装、20-首页主体-新鲜好物、21-首页主体-人气推荐】

文章目录18-首页主体-轮播图-逻辑封装19-首页主体-面板封装20-首页主体-新鲜好物21-首页主体-人气推荐18-首页主体-轮播图-逻辑封装 目的: 封装小兔鲜轮播图组件,第三步:逻辑功能实现。 大致步骤: 自动播放,暴露自动轮…