成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

告別Java -Jar啟動!告訴你啟動單機SpringBoot服務的正確操作方式

開發 后端
此操作只針對于測試環境或單機部署的情況下,使用Jenkins自動化部署或docker部署SpringBoot服務請忽略。

一、安裝Java運行時環境,這里我們使用開源免費的OpenJDK11

查看OpenJDK11安裝包列表

yum list|grep java-11-openjdk

執行安裝命令。

yum install -y java-11-openjdk.x86_64

查看安裝成功的版本。

[root@localhost ~]# java -version
openjdk version "11.0.21" 2023-10-17 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.21.0.9-1.el7_9) (build 11.0.21+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.21.0.9-1.el7_9) (build 11.0.21+9-LTS, mixed mode, sharing)

設置JAVA_HOME。

通過命令查找java安裝的真實路徑,使用which java找到的是軟鏈接,需要通過ll命令一層層查找真實路徑,我們這邊最終/usr/bin/java真實的路徑為 /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64/bin/java,那么我們的JAVA_HOME就是java的安裝目錄/usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64,去掉 末尾的 /bin/java 。

[root@localhost ~]# which java
/usr/bin/java
[root@localhost ~]# ll /usr/bin/java
lrwxrwxrwx 1 root root 22 Jan  2 16:13 /usr/bin/java -> /etc/alternatives/java
[root@localhost ~]# ll /etc/alternatives/java
lrwxrwxrwx 1 root root 64 Jan  2 16:13 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64/bin/java
[root@localhost ~]# ll /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64/bin/java
-rwxr-xr-x 1 root root 13192 Nov 15 00:51 /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64/bin/java

編輯/etc/profile文件,添加JAVA_HOME配置,并使用source /etc/profile命令使環境配置生效,不需要配置CLASS_APTH, rt.jar, tools.jar。

vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile

二、編寫啟動、停止SpringBoot服務的Shell腳本

定義運行服務需要的參數,服務名稱、服務程序路徑、日志文件等,這里可以感覺自己的需要來定義,包括可以添加java -jar的運行參數等。

#!/bin/bash
APP_NAME="gitegg-application.jar" # 命令號提示服務名
APP_PATH="/opt/server/gitegg-application.jar" # jar包文件路徑
LOG_FILE="/opt/server/gitegg-application.log" # 日志輸出文件路徑,一般我們服務會記錄日志,如果不想在這里輸出,那么可以填寫 /dev/null

定義命令腳本運行提示,如果輸入的命令格式錯誤,這里可以給出正確的命令格式等。

#使用說明,提示輸入參數
usage() {
 echo "Usage: sh start_server.sh [start|stop|restart|status]"
 exit 1
}

定義檢查服務是否正在運行的函數。

#檢查服務是否正在運行
is_running(){
 pid=`ps -ef|grep $APP_PATH|grep -v grep|awk '{print $2}' `
if [ -z "${pid}" ]; then
 return 1
 else
 return 0
 fi
}

定義啟動服務的函數。

#啟動服務
start(){
  is_running
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is already running. pid=${pid} ."
  else
    nohup java -jar $APP_PATH > $LOG_FILE 2>&1 &
  fi
}

定義停止服務的函數。

#停止服務
stop(){
  is_running
  if [ $? -eq "0" ]; then
    kill -9 $pid
  else
    echo "${APP_NAME} is not running"
  fi
}

定義查看服務運行狀態的函數。

#顯示運行狀態
status(){
  is_running
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is running. Pid is ${pid}"
  else
    echo "${APP_NAME} is NOT running."
  fi
}

定義服務重啟函數。

#重啟服務
restart(){
  stop
  start
}

腳本接收參數,根據參數執行對應的命令函數。

#選擇要運行的命令
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac

設置腳本執行權限,填寫自己腳本文件的實際路徑。

chmod +x /opt/server/start_server.sh

完整的執行腳本如下:

#!/bin/bash
APP_NAME="gitegg-application.jar" # 命令號提示服務名
APP_PATH="/opt/server/gitegg-application.jar" # jar包文件路徑
LOG_FILE="/opt/server/gitegg-application.log" # 日志輸出文件路徑,一般我們服務會記錄日志,如果不想在這里輸出,那么可以填寫 /dev/null
 
#使用說明,提示輸入參數
usage() {
 echo "Usage: sh start_server.sh [start|stop|restart|status]"
 exit 1
}
 
#檢查服務是否正在運行
is_running(){
 pid=`ps -ef|grep $APP_PATH|grep -v grep|awk '{print $2}' `
if [ -z "${pid}" ]; then
 return 1
 else
 return 0
 fi
}
 
#啟動服務
start(){
  is_running
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is already running. pid=${pid} ."
  else
    nohup java -jar $APP_PATH > $LOG_FILE 2>&1 &
  fi
}
 
#停止服務
stop(){
  is_running
  if [ $? -eq "0" ]; then
    kill -9 $pid
  else
    echo "${APP_NAME} is not running"
  fi
}
 
#顯示運行狀態
status(){
  is_running
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is running. Pid is ${pid}"
  else
    echo "${APP_NAME} is NOT running."
  fi
}
 
#重啟服務
restart(){
  stop
  start
}
 
#選擇要運行的命令
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac

三、編寫啟動、停止SpringBoot服務的Shell腳本

在CentOS中的服務是由systemd管理的,可以通過systemctl命令進行服務運行的相關操作。

新增管理服務gitegg-server.service,服務名稱可以自己定義,此服務放到 /lib/systemd/system/ 目錄。

vi /lib/systemd/system/gitegg-server.service

編寫服務內容。

[Unit]                                                                                                                                                                                                               
Description=gitegg-server                                                                                                                                                                                  
After=docker.socket early-docker.target network.target
Wants=network-online.target docker.service
Requires=docker.socket                                                                                                                                                                                            
                                                                                                                                                                                                                     
[Service]                                                                                                                                                                                                            
Type=forking                                                                                                                                                                                                         
ExecStart=/opt/server/start_server.sh start
ExecStop=/opt/server/start_server.sh stop            
ExecSatus=/opt/server/start_server.sh status                                              
ExecRestart=/opt/server/start_server.sh restart                                                       
                                                                                                                                                                                               
[Install]                                                                                                                                                                                                            
WantedBy=multi-user.target

保存并重新加載配置。

systemctl daemon-reload

設置服務開機啟動。

systemctl enable gitegg-server.service

可以直接使用systemctl 命令操作服務。

# 啟動服務
systemctl start gitegg-server.service
# 關閉服務
systemctl stop gitegg-server.service
# 查看服務狀態
systemctl status gitegg-server.service
# 重啟服務
systemctl restart gitegg-server.service
責任編輯:姜華 來源: 今日頭條
相關推薦

2025-01-16 08:38:34

2010-05-26 08:56:42

MySQL服務不能啟動

2023-09-01 08:26:06

SpringBootjar包war包

2011-05-27 13:36:30

Android SDK

2019-08-08 18:14:43

戴爾

2021-08-06 22:41:53

Windows微軟自啟動

2021-08-06 12:47:22

Windows 10Windows微軟

2022-02-17 08:20:17

Spring執行代碼SpringBoot

2023-06-30 07:51:44

springboot初始化邏輯

2024-11-15 16:35:13

2010-06-13 15:10:49

MySQL loadd

2023-07-03 08:29:11

BannerSpringBoot

2022-11-21 08:11:18

2009-11-19 17:08:55

Oracle數據服務器

2011-03-22 09:16:00

啟動Nagios

2011-03-28 11:30:32

啟動nagios

2009-04-15 20:15:02

WindowsLinux雙系統啟動

2022-05-17 08:44:33

數據庫MySQL

2010-04-09 13:35:35

Oracle啟動

2021-01-08 05:20:22

Springboot應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕一区二区三区在线视频 | 亚洲精品一二三区 | 国产免费色 | 天堂一区二区三区 | 亚洲一二三区在线观看 | 国产精品国产精品国产专区不蜜 | 亚洲在线 | 国产在线精品一区 | 国产一级片久久久 | 久久精品一区二区三区四区 | 亚洲欧美日韩国产综合 | 亚洲综合在线视频 | 久久久久九九九女人毛片 | 黄色免费在线网址 | 国产激情一区二区三区 | 成人在线一级片 | 综合国产第二页 | 99re6在线视频精品免费 | 中文字幕一区在线观看视频 | 久久久久久久综合色一本 | 国产日韩精品一区 | 黄色av网站免费看 | 国产在线一级片 | 粉嫩一区二区三区性色av | 国产一区二区三区四区三区四 | 国产精品永久 | 日韩精品在线播放 | 亚洲成人免费在线 | 亚洲天堂成人在线视频 | 一区二区三区四区在线视频 | av免费网址 | 久久久蜜臀国产一区二区 | 久久精品一级 | 亚洲精品成人网 | 深夜福利影院 | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 成人高清视频在线观看 | 日韩在线观看视频一区 | 国产精品一区二区久久 | 免费黄色片在线观看 | 国产一区二区小视频 |