SpringBoot Centos7 jar包自启方法

第一种

来源于:https://www.cnblogs.com/zhyg/p/5821684.html

Spring boot 应用服务安装部署(maven工程)

1.首先在maven工程的pom文件中引入以下标签并保存

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

这样就可以将Spring boot工程打包成可执行jar包

打开windows cmd 或linux 命令行  执行打好的可执行jar包 用以下命令就可以执行

java -jar  abcd.jar 就可以执行spring boot 应用程序

2.编辑安装linux服务安装文件

  本人是在windows环境下 用记事本先编辑好再上传到centos7 系统上面的

  (1)首先创建记事本文件

  (2)编写以下语句为了方便粘贴直接上文本

[Unit]
Description=abcd service
After=syslog.target

[Service]
Type=simple
ExecStart= /usr/bin/java -jar /home/app/abcd.jar

[Install]
WantedBy=multi-user.target

说明

Description 服务描述
/usr/bin/java java路径(我这里是绝对路径,可以使用其他可执行java的路径
/home/app/abcd.jar 可执行jar包的路径
然后将文本文件保存成后缀名为.service
上面的文件保存之后 可以是abcd.service

3.上传可执行jar包和.service安装文件
  jar包程序文件上传到自定义的位置(我们会在每个系统用户下定义一个叫app的文件夹将jar包保存在此文件夹)
  .service文件上传到系统/etc/systemd/system 目录下(本人用的是centos7系统,其他系统大同小异酌情处理)(如果你对linux文本编辑熟练的话 可以直接创建文件进行编辑)
  注意编码要一致(验证是否一致只需在linux服务器上打开.service文件看是都和windows一致是否有乱码)
4.在部署服务器上执行以下命令(centos7)
  首先 sudo systemctl daemon-reload 刷新服务配置文件
  然后 sudo systemctl enable abcd.service 设置开机重启(视情况而定)
  再  sudo systemctl start  abcd.service 启动服务
5.查看日志
  sudo journalctl -u abcd.service
以上linux各种操作都是在centos7下 其他版本系统基本差不多只是命令不同

这种方式的确可以实现党运行jar的进程挂掉后重启的效果,但是打印的日志不在jar包服务应该打印的位置。

还有一点是通过这种方式启动后,jar无法正常运行,估计是没有加环境变量导致的,但是没有找到解决方案;这种问题在第二种方法里也存在,但是找到了解决方案。

 

第二种

这种方式是通过crontab定时任务执行shell脚本实现jar包自动重启

先创建一个脚本restart.sh,编辑

#!/bin/sh
source /etc/profile
export LANG="en_US.UTF-8"
export JAVA_HOME=/usr/local/java/jdk1.8.0_91
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/dt.jar:$JAVA_HOME/tools.jar
#java环境变量

jarDir="/var/www/voice.monitor.yuyin.tv/postpro.monitor"
jar="MscMoniter.jar"
logFile="/var/www/voice.monitor.yuyin.tv/postpro.monitor/restart.log"

restart(){
        cd ${2}
        if [ ! -f ${1} ];then
                echo "jar not exist" >> ${logFile}
                return
        fi
        (nohup java -jar ${1} &)
#端口映射       iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
}

check(){    
        count=$(ps -ef | grep ${1} | grep -v "grep")
        if [ -n "${count}" ];then
#               echo "`date` ${1} is running" >> ${logFile}
               echo "`date` ${1} s running"
        else 
                restart ${1} ${2}
                echo "`date` ${1} is down. restartig" >> ${logFile}
#               echo "`date` ${1} is down"

        fi
}   

check ${jar} ${jarDir}

然后通过crontab -e命令创建一个定时任务


*/1 * * * *  /etc/profile;/bin/sh /var/www/voice.monitor.yuyin.tv/postpro.monitor/restart.sh

在这里值得注意的是,/etc/profile;/bin/sh这个环境变量的路径一定要加上,否则会导致jar虽然通过定时任务的执行脚本启动了,但是无法正常运行。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

### 回答1: 要启动一个Spring Boot项目,首先需要确保你的CentOS 7系统上安装了Java运行环境(JRE)或者Java开发工具包(JDK)。 1. 首先,确保你已经将你的Spring Boot项目打包成一个可执行的JAR文件。 2. 使用终端进入到你的项目目录中。 3. 输入以下命令启动你的Spring Boot项目: ``` java -jar your_project.jar ``` 其中,`your_project.jar`是你打包后的可执行JAR文件的名称。 4. 如果一切顺利,你将看到Spring Boot项目启动时的日志信息,包括服务器端口号、访问地址等。如果需要,你可以按下`Ctrl+C`来停止项目。 5. 如果你希望将Spring Boot项目作为一个后台进程在CentOS 7中运行,你可以使用`nohup`命令: ``` nohup java -jar your_project.jar > output.log & ``` 这将在后台运行你的项目,并将输出日志重定向到`output.log`文件中。你可以使用`tail -f output.log`命令来查看实时日志。 总结起来,要在CentOS 7上启动Spring Boot项目,你只需要使用`java -jar`命令运行你的可执行JAR文件即可。 ### 回答2: 要在CentOS 7上启动Spring Boot项目,需要按照以下步骤进行操作: 1. 首先,确保CentOS 7上已经安装了Java Development Kit(JDK)。可以通过运行以下命令检查JDK是否已安装:`java -version`。 2. 如果未安装JDK,请使用以下命令安装OpenJDK:`sudo yum install java-1.8.0-openjdk-devel`。 3. 下一步是在CentOS 7上安装Apache Maven。Maven是一个用于构建和管理Java项目的工具。通过运行以下命令进行安装:`sudo yum install maven`。 4. 现在,将Spring Boot项目的代码拷贝到CentOS 7上。可以通过直接下载代码文件或使用版本控制工具如Git进行获取。 5. 在Spring Boot项目的根目录下,运行以下命令以构建项目:`mvn clean install`。 6. 构建成功后,在项目的目标文件夹中会生成一个可执行的JAR文件。 7. 使用以下命令来运行Spring Boot项目:`java -jar <jar文件名>.jar`。请用实际的JAR文件名替代`<jar文件名>`。 8. Spring Boot应用程序将开始运行并监听指定的端口(默认为8080)。 9. 可以通过在浏览器中输入`http://<服务器IP地址>:8080`来访问Spring Boot应用程序。请用实际的服务器IP地址替代`<服务器IP地址>`。 10. 如果需要在后台运行Spring Boot应用程序,可以使用`nohup`命令:`nohup java -jar <jar文件名>.jar &`。 通过按照以上步骤,你可以在CentOS 7上成功启动和运行Spring Boot项目。 ### 回答3: 在CentOS 7上启动Spring Boot项目有以下几个步骤: 1. 首先,确保你已经在CentOS 7上安装了Java Runtime Environment(JRE)或Java Development Kit(JDK)。你可以通过在终端中运行`java -version`来验证Java是否已正确安装。 2. 在CentOS 7上,你可以使用systemd来管理和启动Spring Boot项目。创建一个新的systemd服务文件,你可以使用以下命令: ``` sudo nano /etc/systemd/system/springbootapp.service ``` 在该文件中,添加以下内容: ``` [Unit] Description=Spring Boot Application After=syslog.target [Service] User=<YOUR_USER> ExecStart=/usr/bin/java -jar /path/to/your/springbootapp.jar SuccessExitStatus=143 [Install] WantedBy=multi-user.target ``` 修改`User`为安装Spring Boot应用程序的用户,并将`ExecStart`的路径更改为你的应用程序的jar文件路径。 3. 保存并关闭服务文件,执行以下命令来让systemd加载并启动该服务: ``` sudo systemctl daemon-reload sudo systemctl enable springbootapp sudo systemctl start springbootapp ``` 这些命令将重新加载systemd并启用和启动你的Spring Boot应用程序服务。 4. 你可以使用以下命令来验证服务是否已成功启动: ``` sudo systemctl status springbootapp ``` 如果你在输出中看到`active (running)`字样,则表示服务已成功启动。 现在,你的Spring Boot项目应该已经成功在CentOS 7上启动了。你可以在浏览器中访问你的应用程序的URL来确认它是否正常工作。如果遇到问题,可以检查systemd日志以获取更多信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值