zoukankan      html  css  js  c++  java
  • centos7 rc.local脚本执行不成功

    腾讯云 centos7   配置文件/etc/rc.local的内容如下:

    #!/bin/sh
    #secu_agent init monitor, install at Thu Aug 3 11:19:41 CST 2017
    /usr/local/sa/agent/init_check.sh > /dev/null 2>&1
    /usr/sbin/ntpdate ntpupdate.tencentyun.com >/dev/null 2>&1 &
    /usr/local/qcloud/rps/set_rps.sh >/tmp/setRps.log 2>&1
    /usr/local/qcloud/irq/net_smp_affinity.sh >/tmp/net_affinity.log 2>&1
    /mnt/script/push_restart.sh > /dev/null 2>&1

    目的是开机启动push_restart.sh,而push_restart.sh的脚本内容如下: 

    #!/bin/sh
    #/mnt/apache-tomcat-7.0.63/bin/shutdown.sh
    #kill -9 `ps -ef | grep tomcat |awk '{print $2}'`
    #ps -ef | grep "push-broker-v1.0.jar"
    ps -ef | grep "push-broker-v1.0.jar" | awk '{print $2,$8}'| while read action
    do
    if [[ $action == *grep* ]];then
    echo $action
    else
    echo $action
    echo $action | awk '{print $1}' | while read pid
    do
    kill -15 $pid
    echo $pid
    done
    fi
    done
    nohup java -jar /mnt/push/push-broker-v1.0.jar &

    现象是:服务器启动后,要执行的脚本/mnt/script/push_restart.sh没有执行,经检查:/etc/rc.local是有执行权限。后面静下来心来检查,发现是因为全局变量的问题。

    因为系统在启动过程的时候,当执行/etc/rc.local的时候,服务器还没完全进入系统,因此 java这个全局变量是不存在,所以语句

    nohup java -jar /mnt/push/push-broker-v1.0.jar &      执行当中是存在问题的。

    解决方法:which java 检查java命令的绝对路径为/usr/java/jdk1.8.0_77/bin/java,把语句改为绝对路径 nohup  /usr/java/jdk1.8.0_77/bin/java -jar /mnt/push/push-broker-v1.0.jar & 就可以解决问题了!

  • 相关阅读:
    hdu1430 魔板(康拓展开 bfs预处理)
    网络流EdmondsKarp算法模板理解
    poj3020 建信号塔(匈牙利算法 最小覆盖边集)
    bzoj 2465 小球
    bzoj 1822 冷冻波
    bzoj 1040 骑士
    Codeforces Round #460 (Div. 2)
    bzoj 1072 排列perm
    Codeforces Round #459 (Div. 2)
    bzoj 1087 互不侵犯King
  • 原文地址:https://www.cnblogs.com/to-be-rich/p/7413466.html
Copyright © 2011-2022 走看看