免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 45401 | 回复: 0
打印 上一主题 下一主题

keepalived检测脚本时不能启动nginx [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2018-08-09 14:19 |只看该作者 |倒序浏览
本帖最后由 liuyuhui_gdtyj 于 2018-08-09 14:30 编辑

使用nginx做负载均衡,keepalived做高可用。做一个检查nginx脚本,如果停止了先尝试重启,如果仍然失败,则结束keepalived。下面代码并未写结束keepalived,只是写echo输出,测试脚本问题在哪里。
主要代码如下:
vrrp_script chk_nginx {
    script "/etc/keepalived/check_nginx_pid.sh"  
    interval 3
}

vrrp_instance VI_1 {
  ......
    track_script {
        chk_nginx
    }
}

检测nginx脚本如下:
[root@master ~]# cat /etc/keepalived/check_nginx_pid.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
        echo "nginx is not running,now start it ..." >> /tmp/echo.log
        /usr/sbin/nginx &>> /tmp/echo.log
        sleep 1
        B=`ps -C nginx --no-header |wc -l`
        if [ $B -eq 0 ];then
            echo "Oh,start nginx faild" >> /tmp/echo.log
        else
            echo "OK,start nginx success" >> /tmp/echo.log
        fi
else
        echo "OK,the nginx is running." >> /tmp/echo.log

fi

然后给脚本执行权限:
[root@master ~]# ll /etc/keepalived/check_nginx_pid.sh
-rwxr-xr-x. 1 root root 432 Aug  9 13:51 /etc/keepalived/check_nginx_pid.sh

[root@master ~]#killall nginx    #先关闭nginx进程,下面开始测试
[root@master ~]# ps -C nginx --no-header
结果为空
[root@master ~]# /etc/keepalived/check_nginx_pid.sh
[root@master ~]# ps -C nginx --no-header
15002 ?        00:00:00 nginx
15004 ?        00:00:00 nginx
可以看到,手动执行这个脚本没任何问题,但启动keepalived去自动执行这个脚本,到/usr/sbin/nginx就报没有权限,/tmp/echo.log内容如下:
nginx is not running,now start it ...
/etc/keepalived/check_nginx_pid.sh: line 5: /usr/sbin/nginx: Permission denied
Oh,start nginx faild


请问这个权限问题keepalived要怎么解决?




您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP