基础知识:
- &在linux表示后台运行
- /etc/rc.d/rc/local权限很低,需要授权
- 在自己需要执行的shell脚本中增加一行 sleep 30 ,表示此脚本开机后30秒再执行
需求:服务器启动后,等待30秒再执行脚本命令
1.准备test.sh文件,里面是linux执行命令,把需要执行的命令写入,例如
sleep 30
echo "=================启动综合巡检inspection服务==============="
cd /home/data/project/tomcat-inspection/
./bin/shutdown.sh
./bin/startup.sh
echo "=================启动生产信息ipp服务==============="
cd /home/data/project/tomcat-ipp/
./bin/shutdown.sh
./bin/startup.sh
echo "=================启动问题反馈problem服务==============="
cd /home/data/project/tomcat-problem/
./bin/shutdown.sh
./bin/startup.sh
echo "=================启动nginx服务==============="
service nginx start
2.赋予权限
chmod +x /opt/script/test.sh +x后面跟shell的绝对路径
3.打开/etc/rc.d/rc.local文件,在末尾增加如下内容
/opt/script/test.sh & //&表示后台执行
注意点⚠️:jdk环境是在etc/profile下,执行顺序在rc.local之后,启动时,jdk环境还没有准备好,故需要在/etc/rc.d/rc.local中指定jdk环境,当然,你用到了其他环境时也需要指定,即使sleep了的也需要。
/**
jdk环境是在etc/profile下,执行顺序在rc.local之后,启动时,jdk环境还没有准备好,故需要在/etc/rc.d/rc.local中指定jdk环境,当然,你用到了其他环境时也需要指定
**/
#加载java环境
export JAVA_HOME=/home/java/jdk1.8.0_201
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
4.在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限
chmod +x /etc/rc.d/rc.local
5.查看运行状态
systemctl status rc-local
若没启动,则进行赋权
## 设置可执行权限
chmod +x /etc/rc.d/rc.local
chmod +x /etc/rc.local