美文网首页
Centos7 部署jar包开机自启

Centos7 部署jar包开机自启

作者: 天渊hyominnLover | 来源:发表于2018-08-17 09:26 被阅读666次

    项目部署时遇到坑

    在部署zhihudemo时,没有用Jenkins这种自动化部署工具,在linux centos中部署jar包项目时遇到一个坑,通过xshell远程连接服务器,在系统中使用“java -jar”命令启动jar包时,输出日志会占据当前终端页面,如果关闭终端窗口的话,整个java程序就将停止,为了解决这个问题,可以将jar包设置为后台服务,并进一步设置为系统服务和开机自启

    编写启动shell脚本

    在/etc/init.d/目录下创建zhihudemoService.sh脚本如下:

    #保证该脚本能被chkconfig识别
    #!/bin/sh
    # chkconfig: 2345 85 15 
    # description:auto_run
    
    #程序名
    RUN_NAME="zhihudemo-0.0.1-SNAPSHOT.jar"
    
    #jar 位置
    JAVA_OPTS=/root/zhihudemo-0.0.1-SNAPSHOT.jar
    LOG_OPTS=/root/zhihudemo.log
     
    #开始方法
    start() {
            nohup java -jar $JAVA_OPTS >$LOG_OPTS &
            echo "$RUN_NAME started success."
    }
     
    #结束方法
    stop() {
            echo "stopping $RUN_NAME ..."
            kill -9 `ps -ef|grep $JAVA_OPTS|grep -v grep|grep -v stop|awk '{print $2}'`
    }
     
    case "$1" in
            start)
                start
                ;;
            stop)
                stop
                ;;
            restart)
                stop
                start
                ;;
            *)
                    echo "Userage: $0 {start|stop|restart}"
                    exit 1
    esac
    

    设置执行权限

    将zhihudemo-0.0.1-SNAPSHOT.jar和zhihudemoService.sh加上执行权限:

    chmod +x /etc/init.d/zhihudemoService.sh
    chmod +x /etc/init.d/zhihudemo-0.0.1-SNAPSHOT.jar
    

    添加到chkconfig

    添加到chkconfig作为系统服务,并设置开机启动:

    chkconfig --add zhihudemoService.sh   (添加为系统服务)
    chkconfig zhihudemoService.sh on  (开机自启动)
    service zhihudemoService.sh start(启动服务)
    

    执行完成后重启,查看启动日志,可以看到该jar包程序已经作为守护进程在系统后台运行

    相关文章

      网友评论

          本文标题:Centos7 部署jar包开机自启

          本文链接:https://www.haomeiwen.com/subject/elaobftx.html