部署SpringBoot应用到Linux服务器

文章目录

环境

SpringBoot 2.X
CentOS7

问题

springboot应用一般都打包成一个单独的jar包,然后使用nohup java -jar xxxx.jar &,但是这样有个问题:服务器重启后需要手工启动。

解决

后来翻官方网站,找到办法:
官方地址

我这里使用3.2.1 init.d 方法。

# 授予执行权限
chmod +x /var/myapp/myapp.jar

#使用软连接方式,不需要写启动脚本,spring在打包时已经内置
$ sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp

举个例子(wechat-token-proxy),使用 ll 命令列出 /etc/init.d/目录,如下图
wechat-token-proxy
看最后一条 wechat-token-proxy,注意颜色 。
如果是红底白字并且闪烁,则锁门链接文件有问题。

#开启启动
chkconfig myapp on

使用 chkconfig 命令,检查是否生效,如图
chkconfig 已经生效
Next,就可以用下面命令控制服务了

#启动
service myapp start

#停止
service myapp stop

#重启
service myapp restart

#查看状态
service myapp status

注:

  1. cannot execute binary file:必须使用spring boot的Maven插件来打包,并且设置为可执行;
<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-maven-plugin</artifactId>
	<configuration>
		<executable>true</executable>
	</configuration>
</plugin>
  1. 控制台日志输出至 /var/log/myapp.log
  2. 如果出现 Permission denied,给myapp增加执行权限 chmod +x /var/myapp/myapp.jar
  3. 传递参数
    创建同名的配置文件
    myapp.conf
RUN_ARGS=
JAVA_OPTS=-Xmx2G -XX:+HeapDumpOnOutOfMemoryError -Dspring.profiles.active=prod

https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#deployment.installing.nix-services.script-customization.when-running

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值