linux系统如何启动微服务jar包

目前公司使用springcloud框架,在测试环境和正式环境都是使用jenkins发布系统,但是开发环境没有搭建jenkins,直接提供服务器给开发人员玩,之前遇到了一个问题,我解决了之后会写下博客,就是关于微服务的启动导致内存不足。所以这篇文章介绍下linux系统如何启动微服务的jar包

1.java -jar 启动微服务

直接使用命令java -jar aa.jar 启动微服务,可以看到日志如下,但是一旦关闭xskell终端或者按下ctrl +C,微服务直接关闭。
在这里插入图片描述

2.后台启动

通过命令 java -jar aa.jar &
增加了一个&符号,代表后台启动,ctrl +C ,没有关闭程序,但是关闭xshell 终端,还是会关闭程序

运行jar包并输出日志:

java  -jar testdemo.jar > /data/testdemo.log &

3.nohup启动

这里有两种方式,其中一种就是我准备写的启动微服务导致内存空间不足的文章,这里暂且不说。

(a)通过命令nohup java -jar eureka.jar &

然后就能看到目录种出现nohup.out文件,启动微服务的日志就在nohup.out中,如下图所示:
在这里插入图片描述
在这里插入图片描述

(b)另外一种启动服务的方法是:

直接在服务器上配置git私钥,然后git clone代码到这个服务器上,再接着在代码中已经添加了boot.sh脚本,脚本的内容,
举个例子如下:

nohup mvn spring-boot:run  -Drun.jvmArguments="-Xmx512m" -Drun.profiles=dev&

通过启动这个脚本,也能启动微服务,但是有点问题,jvm的配置问题,会导致内存不足。这个我之后写篇文章

4.以系统服务启动

以系统服务启动,其实就是自己注册一个系统服务,然后系统服务的功能是启动这jar包,然后就可以通过启动自定义系统服务,来控制微服务的启动了。
目前的我现在的公司jenkins发布微服务,也是通过这种方式启动的。

###4.1在/etc/systemd/system目录下创建一个eureka.service文件,eureka是我定义的微服务的名称。
所以每个微服务的名称都不同,都需要自己创建对应的****.service
内容如下:

[Unit]
Description=systemd for eureka
After=network.target

[Service]
Type=simple
WorkingDirectory=/data/eureka
ExecStart=/bin/bash -c "/usr/bin/java -jar -Xmx1344M -Xms1344M -Xmn256M\
  -XX:MaxPermSize=256M \
  -XX:+UseConcMarkSweepGC \
  -XX:+UseCMSInitiatingOccupancyOnly \
  -XX:CMSInitiatingOccupancyFraction=70 \
  -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses \
  -XX:+CMSClassUnloadingEnabled \
  -XX:+CMSScavengeBeforeRemark \
  -XX:ErrorFile=/data/eureka/hs_err_pid%p.log \
  -Xloggc:/data/eureka/gc.log \
  -XX:HeapDumpPath=/data/eureka\
  -XX:+PrintGCDetails \
  -XX:+PrintGCDateStamps \
  -verbose:class \
  -XX:+HeapDumpOnOutOfMemoryError \
  -XX:+PrintHeapAtGC \
  -Djava.net.preferIPv4Stack=true \
  /data/eureka/eureka.jar --spring.profiles.active=prod  > /data/eureka/console.log"
ExecReload=/bin/kill -HUP $MAINPID
KillMode=control-group
Restart=on-failure
RestartSec=42s
User=root

[Install]
WantedBy=multi-user.target

[Unit]说明
Description:服务的描述
After:设置在某个服务启动后启动

[Service]服务参数配置
ExecStart服务运行执行的命令

[Install]服务安装的相关设置,可设置为多用户

根据需要,自己修改description和ExecStart的内容即可(ExecStart后面的java命令需要全路径,写java -jar 会启动不了)

/usr/bin/java 这个是我服务器上jdk的安装位置,自己修改下

系统服务的几个命令:

systemctl start xxx  #启动服务
systemctl status xxx  #查看服务状态
systemctl stop xxx  #停止服务
systemctl enable xxx  #设置服务开机自启动
systemctl disable xxx  #取消服务开机自启动
systemctl restart xxx  #重启服务
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值