Supervisor 的安裝與使用


什么是Supervisor?

Supervisor 是用 Python 實現的一款Linux/Unix系統下的一個進程管理工具,不支持Windows系統,它可以很容易監聽、啟動、停止、重啟一個或多個進程,而且它管理的程序是非 daemon 程序;如果用Supervisor管理進程,當進程被殺死后,Supervisor監聽到進程死后,會自動將被殺死的進程自動啟動,進程就可以自動恢復了,不需要自己寫shell腳本來控制。簡單來說,就是用來管理進程的。
 

1、如果你沒有安裝過 EPEL,則請先安裝  EPEL

yum install epel-release

 

 

EPEL 也就是 EPEL源,安裝完成之后你就可以直接使用yum來安裝額外的軟件包,有部分軟件,是需要安裝這個包之后,才能更方便快捷地進行安裝的。如果已安裝過,則可以跳過,否則,如果直接安裝Supervisor,則可能會出現下面的錯誤提示:

  

2、如何安裝Supervisor ?

yum install -y supervisor   #安裝 EPEL  后,這個腳本進行supervisor的安裝

這個過程,需要一些時間,輸出的信息也比較多,我就只截取一部分

 

3、驗證是否安裝成功

完成安裝后,可以通過 查看版本號驗證是否安裝成功:
supervisord --version

 

4、配置

 正常情況下,在 /etc/下,會有一個名稱為 supervisord.conf 的配置文件,通過下面腳本,可以打開配置文件,進行一些必要的編輯:

vim /etc/supervisord.conf

 

 

 

 比較常修改的配置項有:logfile ( 日志存儲 ) 和 files ( 需要守護的進程配置信息 目錄 ),這里我只修改 file 的配置項:
files = /etc/supervisor/conf.d/*.conf

然后通過 按 Esc 鍵 輸入 :wq ,然后回車,就可以保存配置,並退出了。

因為我們上面配置的路徑中,/etc/supervisor/conf.d/ 這個目錄,是不存在的,那么我們就要通過腳本創建相應的目錄
 
mkdir /etc/supervisor
mkdir /etc/supervisor/conf.d

這一個配置目錄,大家可以根據自己的情況配置,上面的配置完成后,supervisor 就可以讀取配置目錄下的 所有 擴展名為 .conf 的配置文件了。

 

5、常用命令

1 supervisorctl status  # 查看守護進程的遠行狀態,如果配置的目錄下沒有配置,則不顯示信息
2 supervisorctl stop all # 停止所的守護進程
3 supervisorctl stop name # 停止名稱為 name 的守護進程
4 supervisorctl reload   # 重新加載所有進程,一般是修改配置后執行
5 supervisorctl start name  # 啟動名稱為 name 的守護進程
6 supervisorctl restart name # 重新啟動名稱為 name 的守護進程
7 supervisorctl update #根據最新的配置文件,啟動新配置或有改動的進程,配置沒有改動的進程不會受影響而重啟

 

6、配置示例

在確認 supervisor 可以正確啟動后,接下來,我們可以創建一個守護進程的配置文件

vim /etc/supervisor/conf.d/website.conf # 守護進程配置

配置內容,可參考下面 .net core 站點的配置

1 [program:website]
2 command=dotnet website.dll ; # 運行程序的命令
3 directory= /var/www/app/website; 對應的你的項目的存放目錄
4 autorestart=true ; # 程序意外退出是否自動重啟
5 stderr_logfile=/var/log/www/website/website.err.log ; # 錯誤日志文件
6 stdout_logfile=/var/log/www/website/website.out.log ; # 輸出日志文件
7 environment=ASPNETCORE_ENVIRONMENT=Production ; # 進程環境變量
8 user=root ; # 進程執行的用戶身份
9 stopsignal=INT

[program:website] 這個website 名稱是會在 輸入 supervisorctl 相關命令中顯示的名稱,同時這個名稱不可重復使用。

 

實現環境:Centos 7.9.2009

 


免責聲明!

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



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