咱們使用 spring boot 的 maven 插件來構建管理整個應用程序,使用
mvn package
將應用程序打包成一個 jar 包
上傳到服務器大體有兩種方式(常見的):1)經過xftp
這種方式;2)本文將要介紹的這種,我不太建議使用 xftp,由於它太常見了,不新奇,
說說第二種方式吧:首先咱們在 linux 服務器上,下載lrzsz
插件,命令爲:yum -y install lrzsz
,而後上傳文件就輸入命令:rz -y
,-y
表示強制覆蓋原有文件(建議使用),rz
表示上傳,固然了,sz
就表示下載嘍。以後就會打開一個 windows 的文件資源管理器窗口,你選擇目標 jar 包便可實現上傳(前提,選擇好你的上傳目錄)
上傳到服務器的指定位置了,接下來就是如何運行了!
咱們都知道,java 程序在你本地運行時就是選擇好入口 main,而後運行便可。可是在 linux 上就不是那麼簡單了。
大體呢有兩種:一種是直接手動啓動;一種是經過寫一個腳本文件來啓動。
直接啓動:javajava -jar 目標.jar >> catalina.out 2>&1 &
,什麼意思呢?就是將 tomcat(spring-boot-starter-web 自帶 tomcat) 的啓動內容 標準錯誤流重定向到標準輸出流(2 >&1),而且以在後臺運行的形式去運行(&)。
編寫啓動腳本linux
\#!/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
便可。web
編寫關閉腳本:
其實咱們通常是不須要關閉腳本的,由於咱們一般是這樣操做的:進入到該應用程序所在的目錄:ps aux | grep java
或ps -ef | grep java
兩者並無什麼太大的區別,看你喜歡用哪一個命令了,
而後找到該應用程序的pid
, 而後kill -g 該pid
就殺死這個進程了。可是其實這樣很麻煩,
你習慣了還好,通常我仍是建議你使用 關閉腳本的spring\#!/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通常目錄結構就是以下圖所示:
windows
我實際中用的這個啓動腳本內容以下:tomcat
ps:至於有人說的可能須要在 pom.xml 中指定 入口類,我持保留意見bash
- 2019-05-31 17:46
原創手敲不易,轉載請註明出處,謝謝。我是
拉丁小毛,歡迎你們關注我哦,一塊兒交流,共同進步。有問題能夠
郵我哦(util.you.com@gmail.com)