利用Supervisor 管理自己部署的應用程式

2022-02-05 13:42:27 字數 2723 閱讀 5627

首先,在centos7下安裝supervisor

yum install python-setuptools

easy_install supervisor

然後新建配置檔案

#新建supervisor資料夾

mkdir /etc/supervisor

#生成預設的配置檔案

echo_supervisord_conf > /etc/supervisor/supervisord.conf

成功之後檢視檔案

然後編輯這個配置檔案,配置成讀取conf.d資料夾的配置檔案,這樣就不用寫在乙個檔案裡面

同時將[inet_http_server]下的注釋去掉,修改為

這個是啟動web介面管理,上面的ip和埠可以換。

接下來就是編寫執行命令了,在/etc/supervisor下新建conf.d資料夾,

在裡面新建乙個conf檔案,命令內容如下(注意前後不能有空格)

[program:webapi]

command=/bin/bash -c "

export aspnetcore_environment=development&&dotnet webapi.dll

"directory=/home/wwwroot/strategyapi/autorestart=true

stderr_logfile=/var/log/webapi.err.log

stdout_logfile=/var/log/webapi.out

.log

environment=aspnetcore_environment=production

user=root

stopsignal=int

autostart=true

autorestart=true

startsecs=3

其中第二行是執行多行命令設定啟動環境,因為swagger頁面需要配置在development環境下才能開啟,

日誌記錄建議分專案建資料夾,方便查詢。我這裡只是測試,就隨便了。

然後啟動

supervisord -c /etc/supervisor/supervisord.conf   或  supervisord
如果服務已經啟動,使用以下命令重啟

supervisorctl reload
檢視自己的程式是否執行成功

我這裡是新增了三個服務。

然後進入介面

ps:如果打不開需要將配置的埠開啟

firewall-cmd --zone=public --add-port=80/tcp --permanent(開放80埠)
最後,記錄一些常用的命令:

啟動supervisord】

supervisord -c /etc/supervisord.conf   或  supervisord
【停止supervisord】

supervisorctl shutdown
supervisorctl reload
【程序管理】

啟動supervisord管理的所有程序

supervisorctl start all
停止supervisord管理的所有程序

supervisorctl stop all
啟動supervisord管理的某乙個特定程序

supervisorctl start program-name // program-name為[program:xx]中的xx

停止supervisord管理的某乙個特定程序

supervisorctl stop program-name  // program-name為[program:xx]中的xx

重啟所有程序或所有程序

supervisorctl restart all // 重啟所有supervisorctl reatart program-name // 重啟某一程序,program-name為[program:xx]中的xx

檢視supervisord當前管理的所有程序的狀態

supervisorctl status

參考至:

Supervisor程序管理

supervisor 是用python開發的乙個client server服務,是linux unix系統下的乙個程序管理工具,不支援windows系統。它可以很方便的監聽 啟動 停止 重啟乙個或多個程序。用supervisor管理的程序,當乙個程序意外被殺死,supervisort監聽到程序死後,...

supervisor 管理程序

pip install supervisor 配置 etc supervisord.conf file var run supervisor.sock unix socket 檔案,supervisorctl 會使用,如果不能自動建立,可能是沒有許可權,需要手動新增 supervisord logf...

supervisor管理redis,mysql程序

參考 檢視supervisor的管理檔案 檢視redis的啟動檔案 編寫supervisor的ini檔案 重啟suprvisor 檢視啟動偵聽程式 管理mysql程序 program mysql command usr sbin mysqld basedir usr datadir var lib ...