linux上部署spring-boot專案
sh指令碼執行
下面幾個指令碼僅供參考,請根據自己需要做調整
start.sh
#!/bin/sh
rm -f tpid
APP_NAME=fm-eureka-client-1.0-SNAPSHOT
APP_JAR=$APP_NAME".jar"
##nohup命令提交作業,那麼在預設情況下該作業的所有輸出都被重定向到一個名為nohup.out的檔案中,除非另外指定了輸出檔案。這裡指定輸出檔案在為./fm-eureka-client-1.0-SNAPSHOT.log
nohup java -jar $APP_JAR > $APP_NAME".log" 2>&1 &
echo $! > $APP_NAME".tpid"
echo $APP_NAME Start Success!
stop.sh
#!/bin/sh
APP_NAME=fm-eureka-client-1.0-SNAPSHOT
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stopping' $APP_NAME '...'
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $APP_NAME |grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill' $APP_NAME 'Process!'
kill -9 $tpid
else
echo $APP_NAME 'Stoped Success!'
fi
kill.sh
#!/bin/sh
APP_NAME=fm-eureka-client-1.0-SNAPSHOT
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo $APP_NAME 'is not running!'
fi
授予執行許可權
chmod +x start.sh
chmod +x stop.sh
chmod +x kill.sh
只要修改變數 $APP_NAME 就可以用這種方式執行jar專案
使用Linux服務的方式執行
在專案pom.xml中配置外掛
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>true</executable> </configuration> </plugin> </plugins> </build>
需要注意一下:<executable>true<executable>
打包jar
正常使用 mvn clean package -Dmaven.test.skip=true 將工程打成jar包部署
假設部署路徑為 /var/apps/fm-eureka-client.jar ,使用命令做一個軟連線到 /etc/init.d 目錄,命令:ln -s /var/apps/fm-eureka-client.jar /etc/init.d/fm-eureka-client
/etc/init.d/fm-eureka-client中的fm-eureka-client就是服務名。
另刪除軟鏈的命令是:rm /etc/init.d/fm-eureka-client
授予jar檔案可執行許可權
命令:chmod +x /var/apps/fm-eureka-client.jar
啟動服務
接下來,就可以使用 service fm-eureka-client start|stop|restart|status 來對應用進行啟停了。
執行命令後將得到形如 Started|Stopped [PID] 的結果反饋。
預設PID檔案路徑:/var/run/{servicename}/{servicename}.pid
預設服務日誌檔案路徑:/var/log/{servicename}.log(可以通過下面.conf 的方式修改LOG_FOLDER)自定義.conf檔案來變更預設配置
在jar包相同路徑下建立一個.conf檔案,名稱應該與.jar的名稱相同,如fm-eureka-client.conf(如果我們打包的文jar檔案為 fm-eureka-client-1.0-SNAPSHOT.jar 那麼這裡的conf檔案也應該是 fm-eureka-client-1.0-SNAPSHOT.conf),其內容配置可以如下:JAVA_HOME=/usr/local/jdk JAVA_OPTS=-Xmx1024M LOG_FOLDER=/data/logs/myapp
注:LOG_FOLDER 對應的資料夾目錄要必須存在,如果目錄不存在,服務並不會自從建立目錄。
- - - - - - - - - - - 分 - - - - - - - 割 - - - - - - - 線 - - - - - - - - - - - - - -
如果你是CentOS 7或紅帽7以上,你還可以用下面的方法處理,為什麼要用這樣的方法(請自行研究),這裡直接提供結果
編輯服務檔案 vim /usr/lib/systemd/system/fm-eureka-client.service
[Unit]
[Unit]
Description=test
[Service]
WorkingDirectory=/servers/eureka_client
PrivateTmp=true
Restart=always
Type=simple
ExecStart=/usr/bin/java -jar /servers/eureka_client/fm-eureka-client-1.0-SNAPSHOT.jar
ExecStop=/usr/bin/kill -15 $MAINPID
[Install]
WantedBy=multi-user.target
systemctl 管理,讓配置生效。若是修改配置檔案,需要reload:
sudo systemctl daemon-reload
sudo systemctl enable fm-eureka-client.service
啟動服務
systemctl start fm-eureka-client
檢視服務狀態
systemctl status eureka-client.service
顯示如下:
eureka-client.service - test
Loaded: loaded (/usr/lib/systemd/system/eureka-client.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2017-10-25 21:32:24 CST; 16min ago
Main PID: 17080 (java)
Memory: 478.0M
CGroup: /system.slice/eureka-client.service
└─17080 /usr/bin/java -jar /servers/eureka_client/fm-eureka-client-1.0-SNAPSHOT.jar
Oct 25 21:47:03 localhost.localdomain java[17080]: gen usersig times:1
Oct 25 21:47:05 localhost.localdomain java[17080]: load times:0
Oct 25 21:47:05 localhost.localdomain java[17080]: gen usersig times:0
Oct 25 21:47:07 localhost.localdomain java[17080]: load times:0
Oct 25 21:47:07 localhost.localdomain java[17080]: gen usersig times:1
Oct 25 21:47:28 localhost.localdomain java[17080]: 2017-10-25 21:47:28.647 INFO 17080 --- [trap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka...figuration
Oct 25 21:47:43 localhost.localdomain java[17080]: load times:0
Oct 25 21:47:43 localhost.localdomain java[17080]: gen usersig times:0
Oct 25 21:47:46 localhost.localdomain java[17080]: load times:0
Oct 25 21:47:46 localhost.localdomain java[17080]: gen usersig times:0
Warning: eureka-client.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Hint: Some lines were ellipsized, use -l to show in full.
檢視日誌(實時):
journalctl _PID=17080 -f
//或
journalctl -u eureka-client.service -f
使用Linux 7 以後服務新的啟動方式,相關命令
//啟動
systemctl start myapp
//停止
systemctl stop myapp
//重啟
systemctl restart myapp
//檢視日誌
journalctl -u myapp
//關於更多 systemctl 命令的使用方法,度娘有很多。
相關推薦
linux上部署spring-boot專案
sh指令碼執行 下面幾個指令碼僅供參考,請根據自己需要做調整 start.sh #!/bin/sh rm -f tpid APP_NAME=fm-eureka-client-1.0-SNAPSHOT APP_JAR=$APP_NAME".jar
【docker】docker部署spring boot專案在伺服器上
IDE:idea 工具:docker spring boot:2.0.1 ======================================== 簡單記錄一下流程,以供參考: 第一步:首先得有一個spring boot的專案【集成了jpa+mybatis的spring boot 例子:ht
Centos上搭建jenkins,並自動部署Spring Boot專案。(附遇到的問題及解決方案)
最近嘗試自己搭建jenkins自動部署環境,將整個過程及遇到的問題記下來,希望能夠幫助到一些朋友! 本文使用的環境是:Cent os7.2,maven3.5.3,JDK8,jenkins2.136 首先需要在你的伺服器上配好相關的JDK與maven,還要在系統上安裝好gi
部署spring boot專案到spark上
先說一下開發環境大概情況: IDE:IntelliJ IDEA 使用spring boot和gradle進行專案的構建 jdk版本 1.8,這裡注意一下,開發環境打jar包時的jdk版本要和spark配置裡的jdk的版本一致。 步驟 1、完成coding後,把當前modu
遠端伺服器部署spring boot 專案(centos7為例)
1.打包專案(可以是jar包,也可以是war包)以jar包為例(用eclipse打包): 1.專案目錄右擊--debug as(run as)--maven build,然後輸入package,點選debug,就會在target目錄生成相應的包:2.上傳專案:上傳方法可
docker容器部署Spring Boot專案及更新
一、部署spring boot專案服務 首先用docker pull命令拉取一個centos映象。 專案伺服器部署目錄內容如下: 服務映象yumoq/permission-client構建: permission-client容器執行:
jenkins 自動化部署 spring boot 專案(多圖)
前置條件 jenkins與部署專案所用伺服器為同一臺 將下載好的war包,放在tomcat的webapps目錄下,啟動tomcat 預設 8080 埠 wget http://mi
Jenkins+Docker自動化部署Spring boot專案 (二)搭建docker私庫Harbor
前言 docker映象的push、pull都需要映象庫。現在不少大廠提供免費的映象庫,如docker hub,163 hub,也可以自己搭建一個私有映象庫。我用了vmware公司開源的harbor作為docker私有庫,相比docker官方提供的私有庫regi
centos7上部署spring boot
不難,記錄備忘: 一、有centos7的機器 可用Virtualbox安裝centos虛擬機器:https://www.centos.org/download/ 二、機器上安裝有docker 參考文章:https://www.cnblogs.com/yufeng218/p/8370670.ht
Docker 中部署 Spring boot 專案
$ docker run --name mysql_container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql建立 Redis 容器 $ docker run --name redis_container -p 6379:6379 -d re
win10下nginx部署spring boot專案的配置與啟動
沒得說,先下載nginx window版本,我是解壓到 C:/tools目錄下;進入nginx 找到nginx.conf檔案並且開啟,我的配置如下:因為是window系統,80埠被佔用,你可以把程序殺死,也可以把 listen 監聽的埠改一下,紅色的方框是你要配置的專案;接著
使用Docker部署Spring Boot專案
本文使用Docker部署Spring Boot專案。部署之前需要環境中已經安裝Docker和Maven(用於打包),所以本文先進行安裝Docker和Maven;接著搭建一個Spring Boot專案,使其支援Docker部署;最後進行部署和測試。 環境搭建 安裝Docker 檢查系統核心版本 Docker執行
在Docker中部署Spring Boot專案
想要獲取更多文章可以訪問我的部落格 - 程式碼無止境。 微服務現在在網際網路公司可謂非常流行了,之前找工作的的時候很多HR電話約面試的時候都會問對微服務是否有過接觸。而微服務和Docker可以非常完美的結合,更加方便的實現微服務架構的落地。作為微服務中的代表SpringBoot框架,今天我們就來了解一下如
Windows Docker 部署 Spring Boot 專案
目錄 Docker Configuration Config IDEA Plugin Create Spring Boot Project Containerize It U
Docker Gitlab CI 部署 Spring Boot 專案
目前在學習這一塊的內容,但是可能每個人環境都不同,導致找不到一篇部落格能夠完全操作下來沒有錯誤的,所以自己也寫一下,記錄一下整個搭建的過程。 Docker 的安裝這裡就不贅述了,基本上幾行命令都可以了,不會的可以搜一下其他的部落格。我本地使用的環境如下: Ubuntu16.04 Docker19.03 管理
Gitlab CI 整合 Kubernetes 叢集部署 Spring Boot 專案
在上一篇部落格中,我們成功將 Gitlab CI 部署到了 Docker 中去,成功建立了 Gitlab CI Pipline 來執行 CI/CD 任務。那麼這篇文章我們更進一步,將它整合到 K8s 叢集中去。這個才是我們最終的目標。眾所周知,k8s 是目前最火的容器編排專案,很多公司都使用它來構建和管理自己
Spring框架學習筆記(6)——阿里雲伺服器部署Spring Boot專案(jar包)
最近接外包,需要部署伺服器,便是參考了網上的幾篇博文,成功在阿里雲伺服器成功部署了Spring Boot專案,特記下本篇筆記 Spring Boot專案打包 這裡說一下部署的一些問題 1.mysql驅動 建立spring boot的時候,在介面選擇添加了MySql的依賴,但是,實際專案測試的時候,發現驅動錯誤
使用 Docker 部署 Spring Boot 專案
Docker 介紹 Docker 屬於 Linux 容器的一種封裝,提供簡單易用的容器使用介面。它是目前最流行的 Linux 容器解決方案。 Docker 將應用程式與該程式的依賴,打包在一個檔案裡面。執行這個檔案,就會生成一個虛擬容器。程式在這個虛擬容器裡執行,就好像在真實的物理機上執行一樣。有了 Dock
使用 Docker 部署 Spring Boot 專案,帶勁!!
上一篇:[年輕人的第一個 Docker 應用](https://mp.weixin.qq.com/s/k2ShhlAMplbwGap0eOUJuQ) Docker 一次構建、處處執行及快速啟停的特性,在微服務架構中有著舉足輕重的地位,具體的概念性的東西就不介紹了,不懂的點選[這裡](https://mp.w
用idea打包spring boot專案,然後部署到Linux伺服器上
一、IDEA 配置在 IDEA 上 File--->Setting--->Project Structure選擇 Artifacts ,右上角加號新增--->jar選擇專案主類,點選 ok二、在 IDEA 上打包專案開啟側邊欄的 Maven Project 雙擊 Package這時候控制檯開