linux系统如何启动微服务jar包
目前公司使用springcloud框架,在测试环境和正式环境都是使用jenkins发布系统,但是开发环境没有搭建jenkins,直接提供服务器给开发人员玩,之前遇到了一个问题,我解决了之后会写下博客,就是关于微服务的启动导致内存不足。所以这篇文章介绍下linux系统如何启动微服务的jar包1.java -jar 启动微服务直接使用命令java -jar aa.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 #重启服务
更多推荐
所有评论(0)