系统相关
首页 > 系统相关> > 说一下三种jar包在Linux的启动方式

说一下三种jar包在Linux的启动方式

作者:互联网

最近在linux上发布了一个SpringBoot项目,研究了一下jar包在Linux上的集中启动方式,特在此分享一下。

这里默认要启动的jar包为demo-0.0.1-SNAPSHOT.jar

第一种:当前窗口方式启动

把jar包放到一个位置,然后执行 java -jar demo-0.0.1-SNAPSHOT.jar

在这里插入图片描述

这种方式,当当前窗口关闭的时候,服务也就关闭了。直接Ctrl+C也可以将当前服务关闭。

第二种:后台方式启动

nohup java -jar demo-0.0.1-SNAPSHOT.jar >> demo.log 2>&1 &

这种方式是将 demo-0.0.1-SNAPSHOT.jar 包后台启动,并且将日志输入demo.log中去了

第三种:脚本启动&&服务器启动自动启动

第三种启动方式中,有单纯的脚本启动,还加入了服务器启动jar包自动启动服务

查看jdk安装目录 :

执行 java -verbose 看最后两行

3.1 创建启动脚本 demo-start.sh

#!/bin/bash
export JAVA_HOME=/usr/java/jdk-8u261-linux-x64   #对应的 jdk 位置  可以使用 which java 查看具体位置
export PATH=$JAVA_HOME/bin:$PATH
nohup java -jar /root/tianqq/demo-0.0.1-SNAPSHOT.jar  >> demo.log 2>&1 &
echo $! > /root/tianqq/demo-start.pid   #将上一次启动的pid 写入到指定文件

3.2 创建停止脚本 demo-stop.sh

#!/bin/sh
PID=$(cat /root/tianqq/demo-start.pid)
kill -9 $PID

此时是已经创建了脚本启动,

3.3 服务器启动自动启动

在目录/usr/lib/systemd/system 下创建demo.service

[Unit]
Description=run demo service
After=network.target
[Service]

Type=forking
# /bin/bash 下面这个一定要加,之前没有加的时候,报了好久的203错误
ExecStart= /bin/bash /root/tianqq/demo-start.sh
ExecStop=/root/tianqq/demo-stop.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target

然后就是下面的一通操作

systemctl start demo #启动 facepay 服务
systemctl stop demo #停止 facepay 服务
systemctl status demo #查看 facepay 服务当前的运行状态

systemctl enable demo #开机启动 facepay 服务
systemctl disable demo #取消开机启动 facepay 服务
systemctl list-unit-files; #查看当前服务(是否开机启动等)状态

3.4 验证

reboot # 重启服务器

重启服务器试一下,验证下jar服务是否重启了

这次本来是想要做一个jar包的自启动服务的,中间遇到了一些困难,特此分享下我目前掌握的三种jar包启动的方式。

欢迎转载,转载请注明原文出处

个人公众号 :hellotqq,坚持原创输出,坚持分享学习感悟,欢迎关注与您共同成长!

标签:java,包在,启动,demo,jar,tianqq,systemctl,Linux
来源: https://www.cnblogs.com/hellotqq/p/16324585.html