摘要:直接啟動目標什么意思呢就是將自帶的啟動內容標準錯誤流重定向到標準輸出流,并且以在后臺運行的形式去運行。之后你只需要運行這個腳本即可啟動應用程序啦,如果你想查看一下日志內容,你可以輸入,或者你只想查看最后幾行內容即可。
SpringBoot 應用程序在 linux 下的部署及運行 將 spring boot 應用程序打包成 jar 包
我們使用 spring boot 的 maven 插件來構建管理整個應用程序,使用 mvn package 將應用程序打包成一個 jar 包將 該 jar 包上傳到 服務器
上傳到服務器大致有兩種方式(常見的):1)通過 xftp 這種方式;2)本文將要介紹的這種,我不太建議使用 xftp,因為它太常見了,不新奇,運行
說說第二種方式吧:首先我們在 linux 服務器上,下載 lrzsz 插件,命令為:yum -y install lrzsz,然后上傳文件就輸入命令:rz -y ,-y 表示強制覆蓋原有文件(建議使用),rz 表示上傳,當然了,sz 就表示下載嘍。之后就會打開一個 windows 的文件資源管理器窗口,你選擇目標 jar 包即可實現上傳(前提,選擇好你的上傳目錄)
上傳到服務器的指定位置了,接下來就是如何運行了!
我們都知道,java 程序在你本地運行時就是選擇好入口 main,然后運行即可。但是在 linux 上就不是那么簡單了。
大致呢有兩種:一種是直接手動啟動;一種是通過寫一個腳本文件來啟動。
直接啟動:java -jar 目標.jar >> catalina.out 2>&1 &,什么意思呢?就是將 tomcat(spring-boot-starter-web 自帶 tomcat) 的啟動內容 標準錯誤流重定向到標準輸出流(2 >&1),并且以在后臺運行的形式去運行(&)。
編寫啟動腳本
#!/bin/bash PROJECTNAME=目標jar名稱(不需要帶.jar) pid=`ps -ef |grep $PROJECTNAME |grep -v "grep" |awk "{print $2}"` if [ $pid ]; then ? echo "$PROJECTNAME is running and pid=$pid" else echo "Start success to start $PROJECTNAME ...." nohup java -jar 目標.jar >> catalina.out 2>&1 & fi在該 .sh(腳本文件)中,使用到了命令 nohup java -jar ... nohup 就是 no hangup(不掛起),即 即使用戶登出,
關閉終端后,該進程還會繼續運行;采用 nohup 命令后,那么就會在當前腳本所在的同級目錄下生成一個 nohup.out 的文件,
該文件就記錄了整個應用啟動過程以及之后運行中的所有日志內容(因為我們是將 2 標準錯誤 作為輸出內容的,
而標準錯誤默認是包括所有的輸出內容+錯誤內容)。之后你只需要運行這個腳本即可啟動應用程序啦:./start.sh,
如果你想查看一下日志內容,你可以輸入:vi nohup.out,或者你只想查看最后幾行內容:tail -f nohup.out即可。
編寫關閉腳本:
其實我們一般是不需要關閉腳本的,因為我們通常是這樣操作的:進入到該應用程序所在的目錄:
ps aux | grep java 或 ps -ef | grep java 二者并沒有什么太大的區別,看你喜歡用哪個命令了,
然后找到該應用程序的 pid, 然后 kill -g 該pid 就殺死這個進程了。但是其實這樣很麻煩,
你習慣了還好,一般我還是建議你使用 關閉腳本的#!/bin/bash PROJECTNAME=目標 pid=`ps -ef |grep $PROJECTNAME |grep -v "grep" |awk "{print $2}" ` if [ $pid ]; then ? echo "$PROJECTNAME is running and pid=$pid" ? kill -9 $pid ? if [[ $? -eq 0 ]];then ? echo "sucess to stop $PROJECTNAME " ? else ? echo "fail to stop $PROJECTNAME " ? fi fi一般目錄結構就是如下圖所示:
我實際中用的這個啟動腳本內容如下:
ps:至于有人說的可能需要在 pom.xml 中指定 入口類,我持保留意見
- 2019-05-31 17:46聲明
原創手敲不易,轉載請注明出處,謝謝。我是拉丁小毛,歡迎大家關注我哦,一起交流,共同進步。有問題可以郵我哦(util.you.com@gmail.com)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74717.html
摘要:一個使用容器的應用,通常由多個容器組成。使用,不再需要使用腳本來啟動容器。 Docker 部署SpringBoot項目整合 Redis 鏡像做訪問計數Demo 最終效果如下 showImg(https://segmentfault.com/img/remote/1460000012799923?w=841&h=433); 大概就幾個步驟 1.安裝 Docker CE 2.運行 Red...
摘要:哪吒社區技能樹打卡打卡貼函數式接口簡介領域優質創作者哪吒公眾號作者架構師奮斗者掃描主頁左側二維碼,加入群聊,一起學習一起進步歡迎點贊收藏留言前情提要無意間聽到領導們的談話,現在公司的現狀是碼農太多,但能獨立帶隊的人太少,簡而言之,不缺干 ? 哪吒社區Java技能樹打卡?【打卡貼 day2...
摘要:你如何理解中的可以理解為啟動器,它包含了一系列可以集成到應用里面的依賴包,你可以一站式集成及其他技術,而不需要到處找示例代碼和依賴包。如你想使用訪問數據庫,只要加入啟動器依賴就能使用了。 面試了一些人,簡歷上都說自己熟悉 Spring Boot, 或者說正在學習 Spring Boot,一問他們時,都只停留在簡單的使用階段,很多東西都不清楚,也讓我對面試者大失所望。 下面,我給大家總結...
閱讀 3724·2021-10-13 09:39
閱讀 3789·2021-09-24 09:48
閱讀 1189·2021-09-01 10:30
閱讀 2526·2019-08-30 15:55
閱讀 1774·2019-08-29 16:39
閱讀 2296·2019-08-26 13:55
閱讀 3050·2019-08-26 12:23
閱讀 1634·2019-08-26 11:59