查看OpenJDK11安裝包列表
yum list|grep java-11-openjdk
執行安裝命令。
yum install -y java-11-openjdk.x86_64
查看安裝成功的版本。
[root@localhost ~]# java -versionopenjdk version "11.0.21" 2023-10-17 LTSOpenJDK 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/javalrwxrwxrwx 1 root root 22 Jan 2 16:13 /usr/bin/java -> /etc/alternatives/java[root@localhost ~]# ll /etc/alternatives/javalrwxrwxrwx 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_64export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
定義運行服務需要的參數,服務名稱、服務程序路徑、日志文件等,這里可以感覺自己的需要來定義,包括可以添加java -jar的運行參數等。
#!/bin/bashAPP_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/bashAPP_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
在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.targetWants=network-online.target docker.serviceRequires=docker.socket [Service] Type=forking ExecStart=/opt/server/start_server.sh startExecStop=/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
本文鏈接:http://www.www897cc.com/showinfo-26-57925-0.html告別Java -Jar啟動!告訴你啟動單機SpringBoot服務的正確操作方式
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 八張圖講清楚Mmap實現原理
下一篇: JS 中如何克隆對象?你學會了嗎?