虚拟机重启自动启动软件脚本
-
将文件夹内的
mysql.sh,redis.sh,solr.sh,tomcat.sh
脚本复制虚拟机某个目录,这里以/home目录为例mysql
脚本#!/bin/sh #chkconfig: 2345 80 90 #description:开机自动启动的脚本程序 echo "mysql启动中" `date` >> /home/logs/startlog.txt systemctl start mysql echo "mysql启动完成" `date` >> /home/logs/startlog.txt
redis
脚本#!/bin/sh #chkconfig: 2345 80 90 #description:开机自动启动的脚本程序 echo "redis启动中" `date`>> /home/logs/startlog.txt REDIS_PATH="/home/redis-6.2.6/bin/redis-server" # Redis服务器路径 REDIS_CONF="/home/redis-6.2.6/etc/redis.conf" # Redis配置文件路径 $REDIS_PATH $REDIS_CONF # 启动Redis服务器并指定配置文件 sleep 30 echo "redis启动完成" `date`>> /home/logs/startlog.txt
tomcat
脚本#!/bin/sh #chkconfig: 2345 80 90 #description:开机自动启动的脚本程序 echo "tomcat7启动中" `date` >> /home/logs/startlog.txt export JAVA_HOME=/home/jdk1.8.0_261 export JRE_HOME=$JAVA_HOME/jre #export JAVA_HOME=/home/jdk1.7.0_80 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar cd /home/tomcat7/bin ./startup.sh echo "tomcat7启动完成" `date` >> /home/logs/startlog.txt
solr
脚本#!/bin/sh #chkconfig: 2345 80 90 #description:开机自动启动的脚本程序 echo "solr启动中" `date` >> /home/logs/startlog.txt export JAVA_HOME=/home/jdk1.8.0_261 export JRE_HOME=$JAVA_HOME/jre #export JAVA_HOME=/home/jdk1.7.0_80 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar cd /home/solr/bin ./startup.sh sleep 30 echo "solr启动完成" `date` >> /home/logs/startlog.txt
如果是在windows中拷贝的.sh脚本需要通过notepad++转换,否则可能会有编码错误,文件夹中已经编码过了,无需额外操作
如果出现编码错误,解决方案步骤参考:
1.在脚本文件上右键以
notepad++
编辑2.编辑-->文档格式转换-->转为
unix
-
给脚本加可执行权限( 分步执行)
# 先将目录切换到脚本所在位置 cd /home # 修改脚本执行权限 chmod +x /home/mysql.sh chmod +x /home/redis.sh chmod +x /home/solr.sh chmod +x /home/tomcat.sh
-
修改
rc.local
加可执行权限chmod +x /etc/rc.d/rc.local
-
在
/etc/rc.d/rc.local
文件中添加命令行/home/mysql.sh /home/redis.sh /home/solr.sh /home/tomcat.sh
-
执行
/etc/rc.d/rc.local
,看看是否报错/etc/rc.d/rc.local
-
重启看自启动效果
reboot
-
总结:大坑,由于
/etc/rc.d/rc.local
文件的执行顺序优先于/etc/profile
执行,会出现/etc/rc.d/rc.local
中的脚本执行了tomcat脚本,但是服务没起来解决方案:在tomcat脚本中导入一下
JDK
的环境变量