• Ubuntu编写开机启动脚本


    1 概述

    • 服务器一般不可能百分之百不会挂,于是一般采用主备或者分布式来达到高可用。

    • 挂掉的机器有很多处理策略,常用的就是重新启动,但是为了保证重启之后服务器能够恢复可用状态,需要配置开机启动脚本。

    2 编写启动脚本

    • 服务脚本:假设服务名字为test
    #!/bin/bash
    ### BEGIN INIT INFO
    # Provides:          littleevil
    # Required-Start:    $local_fs $network
    # Required-Stop:     $local_fs
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: test service
    # Description:       test service daemon
    ### END INIT INFO
    
    # 文件服务器 运营平台 商户平台
    files=(file opt merchant)
    # 目录
    deploy=/home/littleevil/deploy/
    
    start() {
        echo "starting test service..." 
        for var in ${files[@]};
        do
        	# 进入目录并运行服务器启动脚本
            cd $deploy$var
            sh start.sh
        done
    }
    
    
    stop() {
        echo "stopping test service..."
        for var in ${files[@]};
        do
        	# 进入目录并运行服务器停止脚本
            cd $deploy$var
            sh stop.sh
        done
    }
    
    restart() {
        stop
        start
    }
    
    # 这里没有重写status
    case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            restart
            ;;
    esac
    
    • 服务器启动脚本:这里演示文件服务器的启动脚本
    #!/bin/sh
    
    echo "you will start server"
    echo "please waiting ...."
    
    ps -ef|grep file.jar|grep -v grep|awk {'print $2'}|while read line
    do
      kill -9 $line
    done
    
    rm -rf log.out
    
    # JVM调优参数未写 需要根据实际情况进行调整
    nohup nice java -server -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintHeapAtGC -Xloggc:./gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./oom.dump -jar file.jar >log.out&
    
    • 服务器停止脚本
    #!/bin/sh
    
    echo "you will stop server"
    echo "please waiting ...."
    
    ps -ef|grep file.jar|grep -v grep|awk {'print $2'}|while read line
    do
      sudo -S kill -9 $line
    done
    
    rm -rf log.out
    

    3 设置脚本开机自启动

    • 复制文件夹中的test服务脚本至linux系统的/etc/init.d目录下
    • 进入/etc/init.d目录执行sudo update-rc.d test defaults 95
    • 执行sudo sysv-rc-conf查看服务是否添加
    • 执行 sudo service test start/stop/restart/status或者sudo systemctl start/stop/restart/status test.service 测试服务是否添加成功 (需要重启服务器)
    • 执行 sudo sysv-rc-conf --level 2345 delightd on
    • 最后通过sudo reboot测试服务开启是否可以自启动
  • 相关阅读:
    postgresql获取随机数
    windows环境中Tomcat实现开机自启动
    让Tomcat支持中文路径名和中文文件名
    CentOS 环境变量编辑、保存、立即生效的方法
    eclipse/intellij idea 远程调试hadoop 2.6.0
    利用Spring的@Async异步处理改善web应用中耗时操作的用户体验
    ssh 免密码设置失败原因总结
    hadoop 2.6伪分布安装
    weblogic.nodemanager.common.ConfigException: Native version is enabled but nodemanager native library could not be loaded 解决办法
    velocity模板引擎学习(3)-异常处理
  • 原文地址:https://www.cnblogs.com/linzhanfly/p/9915481.html
Copyright © 2020-2023  润新知