Linux下SpringBoot Jar 如何實現service服務

概述

SpringBoot Jar 在linux啓動方式比較多,其中一種是經過腳本啓動,編寫start/stop/restart.sh shell腳本,另一種就是與Linux系統相結合實現,經過service命令來啓動。java

Linux服務器相關工做

  1. 確保目標服務器已經配置好Java運行環境
# 檢查jar環境
@ java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
  1. 上傳jar到目標機器
@ scp cloud-txlcn.jar root@192.168.2.101:/opt/cloud/txlcn
  1. 創建軟鏈接
@ ln -s /opt/cloud/txlcn/cloud-txlcn/jar /etc/init.d/cloud-txlcn
# cloud-txcln服務名
  1. 配置service相關信息
# 啓動應用
@ service cloud-txlcn start/stop
# 配置開機服務
@ systemctl enable cloud-txlcn
# 重啓應用
@ systemctl restart cloud-txlcn
# 重啓服務器
@ reboot
# 驗證是否生效
@ ps aux|grep cloud-txlcn
root  5914 29.1 17.9 2272304 181856 pts/1  Sl   22:41   0:32 /bin/java -Dsun.misc.URLClassPath.disableJarChecking=true -jar /opt/cloud/tm/txlcn-tm-5.0.2.RELEASE.jar

問題

  1. 使用service xxx start命令啓動失敗。
@ service xxx start
@ /etc/init.d/cloud-txlcn: /etc/init.d/cloud-txlcn: cannot execute binary file

緣由就是打成的jar包不能本身執行linux

注意:在pom.xml中沒有配置<executable>true</executable>,那麼生成的jar包是無法本身執行的,只能經過java -jar xxx.jar執行。 或者shell

nohup java -Xms64m -Xmx256m -Xmn128m -Xss256k -jar sentinel-dashboard-1.6.3.jar logs/start.out 2>&1 &
  1. 執行 service cloud-txlcn start 顯示權限不夠
@ service xxx start
env: /etc/init.d/cloud-txlcn: 權限不夠

解決方法:chmod a+wrx /etc/init.d/cloud-txlcn服務器

相關文章
相關標籤/搜索