一、環境搭建
參考:https://blog.csdn.net/llwy1428/article/details/105335108
二、配置管理進程
進程管理配置參數,不建議全都寫在supervisord.conf文件中,可以將每個進程寫一個配置文件放在include指定的目錄下引入進supervisord.conf文件中。
創建/etc/supervisor.d目錄,用於存放進程管理的配置文件。(此處目錄可自定義,與配置文件中對應即可)
[root@localhost ~]# mkdir /etc/supervisord.d
修改 /etc/supervisord.conf 中的include參數,將 /etc/supervisor.d 目錄添加到 include 中
[include]
files = /etc/supervisord.d/*.ini
說明:*.ini 是可以指定一個或多個以.ini結束的配置文件。
三、服務配置模板
1、創建一個 Java SpringBoot 的程序 HelloSupervisor
2、打成 jar 包(過程略)
3、創建目錄:
[root@localhost ~]# mkdir /opt/HelloSupervisor
[root@localhost ~]# mkdir /opt/HelloSupervisor/logs
4、安裝 JDK
參考 https://blog.csdn.net/llwy1428/article/details/85232267
5、把 jar 包上傳至目錄 /opt/HelloSupervisor
6、編輯 HelloSupervisor 的配置模板
[root@localhost ~]# vim /etc/supervisord.d/HelloSupervisor.ini
7、寫入以下內容
;[program:HelloSupervisor]是被管理的進程配置參數,tomcat是進程的名稱
[program:HelloSupervisor]
environment=JAVA_HOME=/opt/jdk1.8.0_241/bin ; 這裏可以創建環境變量
directory=/opt/HelloSupervisor ; 程序的啓動目錄
command=/opt/jdk1.8.0_241/bin/java -Xms512m -Xmx1024m -Dspring.profiles.active=prd -Dserver.port=8080 -jar /opt/HelloSupervisor/HelloSupervisor.jar ; 啓動命令,可以看出與手動在命令行啓動的命令是一樣的
autostart=true ; 在supervisord啓動的時候也自動啓動
startsecs=10 ; 啓動10秒後沒有異常退出,就表示進程正常啓動了,默認爲1秒
autorestart=true ; 程序退出後自動重啓,可選值:[unexpected,true,false],默認爲unexpected,表示進程意外殺死後才>重啓
startretries=3 ; 啓動失敗自動重試次數,默認是3
user=root ; 用哪個用戶啓動進程,默認是root
priority=999 ; 進程啓動優先級,默認999,值小的優先啓動
redirect_stderr=true ; 把stderr重定向到stdout,默認false
stdout_logfile_maxbytes=20MB ; stdout 日誌文件大小,默認50MB
stdout_logfile_backups = 20 ; stdout 日誌文件備份數,默認是10
; stdout 日誌文件,需要注意當指定目錄不存在時無法正常啓動,所以需要手動創建目錄(supervisord 會自動創建日誌文件)
stdout_logfile=/opt/HelloSupervisor/logs/log.log
stopasgroup=false ;默認爲false,進程被殺死時,是否向這個進程組發送stop信號,包括子進程
killasgroup=false ;默認爲false,向進程組發送kill信號,包括子進程
8、修改配置文件的權限
[root@localhost ~]# chmod 755 /etc/supervisord.d/HelloSupervisor.ini
9、重啓服務
[root@localhost ~]# systemctl restart supervisord.service
10、瀏覽器查看
瀏覽器地址欄錄入: http://192.168.11.17:9001/ 192.168.11.17 是我虛擬機的 ip
可看到 HelloSupervisor 服務已經在運行
11、查看運行狀態
[root@localhost ~]# netstat -lntp
HelloSupervisor 佔用端口 8080 可看到服務已啓動
四、服務啓動、重啓、配置重載與服務關閉
1、啓動指定服務(以 HelloSupervisor 爲例)
[root@localhost ~]# supervisorctl start HelloSupervisor
2、停止指定服務(以 HelloSupervisor 爲例)
[root@localhost ~]# supervisorctl stop HelloSupervisor
3、重啓指定服務(以 HelloSupervisor 爲例)
[root@localhost ~]# supervisorctl restart HelloSupervisor
4、啓動 supervisor 服務
[root@localhost ~]# systemctl start supervisord
5、停止 supervisor 服務
[root@localhost ~]# systemctl stop supervisord
6、查看 supervisor 服務運行狀態
[root@localhost ~]# systemctl status supervisord
7、supervisor 重新加載配置信息
[root@localhost ~]# systemctl reload supervisord
8、supervisor 服務 重啓
[root@localhost ~]# systemctl restart supervisord
至此,Centos7 supervisor 配置管理 SpringBoot 進程操作完畢!