标签:java 包在 启动 demo jar tianqq systemctl 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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。