腾讯云 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 & 就可以解决问题了!
相关文章
标签:服务器技术
- •VMware Workstation Pro 16安装CentOS7超详细图文步骤
- •CentOS7下配置使用JumpServer 堡垒机 (图文教程)
- •CentOS安装jdk的几种方法及配置环境变量方式
- •CentOS忘记密码修改方案以及centos卡在开机登录界面,命令失效的解决方法
- •解决笔记本安装centos7后无法调节屏幕亮度
- •VMware安装CentOS 8.1(CentOS 8系列可参考)的图文详细教程
- •CentOS7 minimal 最小化安装网络设置过程
- •CentOS7下搭建JumpServer
- •CentOS安装rpm包出现冲突时的解决办法
- •Vmware下CentOS7最小化安装方式