Centos7 部署jar包开机自启

项目部署时遇到坑

在部署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包开机自启)