摘要:直接啟動目標(biāo)什么意思呢就是將自帶的啟動內(nèi)容標(biāo)準(zhǔn)錯誤流重定向到標(biāo)準(zhǔn)輸出流,并且以在后臺運(yùn)行的形式去運(yùn)行。之后你只需要運(yùn)行這個腳本即可啟動應(yīng)用程序啦,如果你想查看一下日志內(nèi)容,你可以輸入,或者你只想查看最后幾行內(nèi)容即可。
SpringBoot 應(yīng)用程序在 linux 下的部署及運(yùn)行 將 spring boot 應(yīng)用程序打包成 jar 包
我們使用 spring boot 的 maven 插件來構(gòu)建管理整個應(yīng)用程序,使用 mvn package 將應(yīng)用程序打包成一個 jar 包將 該 jar 包上傳到 服務(wù)器
上傳到服務(wù)器大致有兩種方式(常見的):1)通過 xftp 這種方式;2)本文將要介紹的這種,我不太建議使用 xftp,因?yàn)樗R娏?,不新奇?br>說說第二種方式吧:首先我們在 linux 服務(wù)器上,下載 lrzsz 插件,命令為:yum -y install lrzsz,然后上傳文件就輸入命令:rz -y ,-y 表示強(qiáng)制覆蓋原有文件(建議使用),rz 表示上傳,當(dāng)然了,sz 就表示下載嘍。之后就會打開一個 windows 的文件資源管理器窗口,你選擇目標(biāo) jar 包即可實(shí)現(xiàn)上傳(前提,選擇好你的上傳目錄)運(yùn)行
上傳到服務(wù)器的指定位置了,接下來就是如何運(yùn)行了!
我們都知道,java 程序在你本地運(yùn)行時就是選擇好入口 main,然后運(yùn)行即可。但是在 linux 上就不是那么簡單了。
大致呢有兩種:一種是直接手動啟動;一種是通過寫一個腳本文件來啟動。
直接啟動:java -jar 目標(biāo).jar >> catalina.out 2>&1 &,什么意思呢?就是將 tomcat(spring-boot-starter-web 自帶 tomcat) 的啟動內(nèi)容 標(biāo)準(zhǔn)錯誤流重定向到標(biāo)準(zhǔn)輸出流(2 >&1),并且以在后臺運(yùn)行的形式去運(yùn)行(&)。
編寫啟動腳本
#!/bin/bash PROJECTNAME=目標(biāo)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 目標(biāo).jar >> catalina.out 2>&1 & fi在該 .sh(腳本文件)中,使用到了命令 nohup java -jar ... nohup 就是 no hangup(不掛起),即 即使用戶登出,
關(guān)閉終端后,該進(jìn)程還會繼續(xù)運(yùn)行;采用 nohup 命令后,那么就會在當(dāng)前腳本所在的同級目錄下生成一個 nohup.out 的文件,
該文件就記錄了整個應(yīng)用啟動過程以及之后運(yùn)行中的所有日志內(nèi)容(因?yàn)槲覀兪菍?2 標(biāo)準(zhǔn)錯誤 作為輸出內(nèi)容的,
而標(biāo)準(zhǔn)錯誤默認(rèn)是包括所有的輸出內(nèi)容+錯誤內(nèi)容)。之后你只需要運(yùn)行這個腳本即可啟動應(yīng)用程序啦:./start.sh,
如果你想查看一下日志內(nèi)容,你可以輸入:vi nohup.out,或者你只想查看最后幾行內(nèi)容:tail -f nohup.out即可。
編寫關(guān)閉腳本:
其實(shí)我們一般是不需要關(guān)閉腳本的,因?yàn)槲覀兺ǔJ沁@樣操作的:進(jìn)入到該應(yīng)用程序所在的目錄:
ps aux | grep java 或 ps -ef | grep java 二者并沒有什么太大的區(qū)別,看你喜歡用哪個命令了,
然后找到該應(yīng)用程序的 pid, 然后 kill -g 該pid 就殺死這個進(jìn)程了。但是其實(shí)這樣很麻煩,
你習(xí)慣了還好,一般我還是建議你使用 關(guān)閉腳本的#!/bin/bash PROJECTNAME=目標(biāo) 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一般目錄結(jié)構(gòu)就是如下圖所示:
我實(shí)際中用的這個啟動腳本內(nèi)容如下:
ps:至于有人說的可能需要在 pom.xml 中指定 入口類,我持保留意見
- 2019-05-31 17:46聲明
原創(chuàng)手敲不易,轉(zhuǎn)載請注明出處,謝謝。我是拉丁小毛,歡迎大家關(guān)注我哦,一起交流,共同進(jìn)步。有問題可以郵我哦([email protected])
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/74717.html
摘要:一個使用容器的應(yīng)用,通常由多個容器組成。使用,不再需要使用腳本來啟動容器。 Docker 部署SpringBoot項目整合 Redis 鏡像做訪問計數(shù)Demo 最終效果如下 showImg(https://segmentfault.com/img/remote/1460000012799923?w=841&h=433); 大概就幾個步驟 1.安裝 Docker CE 2.運(yùn)行 Red...
摘要:哪吒社區(qū)技能樹打卡打卡貼函數(shù)式接口簡介領(lǐng)域優(yōu)質(zhì)創(chuàng)作者哪吒公眾號作者架構(gòu)師奮斗者掃描主頁左側(cè)二維碼,加入群聊,一起學(xué)習(xí)一起進(jìn)步歡迎點(diǎn)贊收藏留言前情提要無意間聽到領(lǐng)導(dǎo)們的談話,現(xiàn)在公司的現(xiàn)狀是碼農(nóng)太多,但能獨(dú)立帶隊的人太少,簡而言之,不缺干 ? 哪吒社區(qū)Java技能樹打卡?【打卡貼 day2...
摘要:你如何理解中的可以理解為啟動器,它包含了一系列可以集成到應(yīng)用里面的依賴包,你可以一站式集成及其他技術(shù),而不需要到處找示例代碼和依賴包。如你想使用訪問數(shù)據(jù)庫,只要加入啟動器依賴就能使用了。 面試了一些人,簡歷上都說自己熟悉 Spring Boot, 或者說正在學(xué)習(xí) Spring Boot,一問他們時,都只停留在簡單的使用階段,很多東西都不清楚,也讓我對面試者大失所望。 下面,我給大家總結(jié)...
摘要:清理上一次執(zhí)行創(chuàng)建的文件處理資源文件編譯代碼執(zhí)行單元測試文件創(chuàng)建拷貝到本地的倉庫下面發(fā)布生成文檔將工程所有文檔生成網(wǎng)站,生成的網(wǎng)站界面默認(rèn)和的項目站點(diǎn)類似,但是其文檔用格式寫的,目前不支持,需要用其他插件配合才能支持。 前言 本文可以幫助你加深對Maven的整體認(rèn)識,不是一篇基礎(chǔ)文章。如果你現(xiàn)在還沒有用 Maven 跑過 HelloWorld,那么本文可能不適合你。 一、Maven簡介...
閱讀 3761·2021-10-13 09:39
閱讀 3810·2021-09-24 09:48
閱讀 1206·2021-09-01 10:30
閱讀 2537·2019-08-30 15:55
閱讀 1788·2019-08-29 16:39
閱讀 2307·2019-08-26 13:55
閱讀 3063·2019-08-26 12:23
閱讀 1645·2019-08-26 11:59