虚拟机重启自动启动软件脚本

  1. 将文件夹内的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

  2. 给脚本加可执行权限( 分步执行)

    # 先将目录切换到脚本所在位置
    cd /home  
    # 修改脚本执行权限
    chmod +x /home/mysql.sh
    chmod +x /home/redis.sh
    chmod +x /home/solr.sh
    chmod +x /home/tomcat.sh
    
  3. 修改rc.local加可执行权限

    chmod +x /etc/rc.d/rc.local
    
  4. /etc/rc.d/rc.local文件中添加命令行

    /home/mysql.sh
    /home/redis.sh
    /home/solr.sh
    /home/tomcat.sh
    
  5. 执行/etc/rc.d/rc.local,看看是否报错

    /etc/rc.d/rc.local
    
  6. 重启看自启动效果

    reboot
    
  7. 总结:大坑,由于/etc/rc.d/rc.local文件的执行顺序优先于/etc/profile执行,会出现/etc/rc.d/rc.local中的脚本执行了tomcat脚本,但是服务没起来

    解决方案:在tomcat脚本中导入一下JDK的环境变量

posted on 2023-10-18 17:06  upupup-999  阅读(17)  评论(0编辑  收藏  举报