linux(centos)下安裝supervisor進程管理工具


在接觸supervisor進程管理工具之前,使用springboot打包部署到linux服務器的流程是這樣子的,如下圖所示:
流程展示
上圖展示的就是最一般的流程,如果項目是小項目或者demo可以這樣子去部署,但是實際生產中會有各種各樣的問題存在,比如:

  1. 項目發布之后,由於各種可能的原因,服務器宕機或者服務進程掛掉,不能自動重啟;
  2. 如果項目是頻繁更新,頻繁發布,這樣子簡直會把人累死;
  3. ...
    ok,今天先來解決第一個問題,服務重啟的問題。

supervisor介紹

Supervisor,是一個進程控制系統,是一個客戶端/服務器端系統允許用戶在UNIX-LIKE 操作系統中去監控,控制一些進程。Supervisor作為主進程,Supervisor下管理的時一些子進程,當某一個子進程異常退出時,Supervisor會立馬對此做處理,通常會守護進程,重啟該進程,保證進程可用。

supervisor安裝

一般服務器都部署在ecs上面,推薦使用yum命令安裝,簡單省心。
首先,使用命令

yum -y install  supervisor

supervisor配置

系統會自動安裝,等待安裝完畢之后,輸入命令:

vim /etc/supervisor.d/test.ini 

使用vim命令新建一個test.ini文件,該文件是管控進程的配置文件,內容大致如下,可根據個人需要增刪配置:

#啟動程序的名稱
[program:test] 
 #配置的java啟動環境
environment=JAVA_HOME=/app/jdk/jdk1/bin
#啟動命令
command= /app/jdk/jdk1/bin/java -Xms2048m -Xmx4096m -Dspring.profiles.active=dev -Dserver.port=8080 -jar /app/jar/test.jar
#jar所在文件目錄
directory=/app/jar 
#用戶
user=root 
stopsignal=INT
#自動啟動
autostart=true 
#自動重啟
autorestart=true 
#重啟時間1s
startsecs=1 
#錯誤日志
stderr_logfile=/app/log/sp/test.err.log 
#標准打印日志,滿50MB區分
stdout_logfile=/app/log/sp/test.out.log 

至此,supervisor配置結束,如果有多個jar項目要跑,可以復制多個ini項目,注意內存分配。

supervisor啟動

使用如下命令來啟動或者更新supervisor,

# 啟動supervisor
systemctl  start supervisord
# 更新配置文件
supervisorctl  update
# 啟動某個應用
supervisorctl  start aaaa
supervisorctl  stop aaaa
# 查看狀態
supervisorctl   status

總結

使用supervisor工具之后,可以把自己解放出來,不用再擔心深夜服務停掉而自己不知道的問題,由於服務器部署在阿里雲上面,只要不是大規模斷電等極其意外的情況,都可以保證在服務器不掛的情況下,保證系統的正常運轉。
晚上終於可以安心睡覺了,下篇文章采用持續集成解決第二個問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM