说一下三种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