1. 程式人生 > 其它 >說一下三種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,堅持原創輸出,堅持分享學習感悟,歡迎關注與您共同成長!