一、簡介
Pythonsupervisor是一款用於監控、管理、重啟和停止Python程序的工具,它是由Supervisor的Python API和命令行界面構成。
二、安裝與配置
在Linux系統下,可以通過Pip安裝supervisor:
pip install supervisor
安裝完成後在終端中輸入“echo_supervisord_conf”可以生成默認的supervisord.conf文件,也可以自行創建supervisord.conf文件。
supervisord.conf文件必須包含以下內容:
- inet_http_server:程序狀態Web服務器,用於在Web上查看狀態信息和管理。
- [supervisord]:supervisor全局配置,用於配置日誌、UMASK、進程優先級等。
[unix_http_server] file=/var/run/supervisor.sock ; Unix socket 文件,supervisorctl 會使用 chmod=0700 ; socket 文件的 mode,默認是 0700 [inet_http_server] ; supervisord 運行的服務器,可以用來查看狀態,提交命令等 port=127.0.0.1:9001 ; Web界面管理端口號和IP,如果開放給外網使用,需要注意安全問題 username=user ; 登錄管理界面的用戶名 password=pass ; 登錄管理界面的密碼 [supervisord] logfile=/var/log/supervisord.log ; 日誌文件,默認是 $CWD/supervisord.log,需要注意權限問題 logfile_maxbytes=50MB ; 日誌文件大小,超出會輪轉,可以寫成 1000MB=1GB logfile_backups=10 ; 日誌文件保留備份數量 loglevel=info ; 日誌級別,默認 info,其它: debug,warn,trace pidfile=/var/run/supervisord.pid ; pid 文件位置 nodaemon=false ; 是否在前台啟動,默認是 false,即以 daemon 的方式啟動進程 minfds=1024 ; 可以打開的文件描述符的最小值,默認 1024 minprocs=200 ; 可以打開的進程數的限制,默認 200 [supervisorctl] serverurl=unix:///var/run/supervisor.sock ; 通過 unix socket 與 supervisord 通信 username=user ; 如果 supervisord 配置了用戶名和密碼,這裡要填上 password=pass ; 如果 supervisord 配置了用戶名和密碼,這裡要填上
- program:需要管理的Python程序進程,用於配置程序運行方式、命令等,也可以在管理界面中查看和操作。
三、使用
在有supervisord.conf文件的目錄下,使用“supervisord”命令即可啟動supervisord進程。
supervisord
啟動後,可以使用“supervisorctl”命令進入supervisorctl控制台。
supervisorctl
在控制台中,可以進行如下操作:
- 啟動所有程序:start all
- 停止所有程序:stop all
- 重啟所有程序:restart all
- 啟動指定程序:start program_name
- 停止指定程序:stop program_name
- 重啟指定程序:restart program_name
四、附加功能
supervisor還提供了很多額外的功能,如:
- 自動啟動:可以將supervisord設置成開機自啟動。
- 郵件通知:可以配置郵件接口,當程序狀態發生變化時,會發郵件通知。
- 進程日誌:可以將進程的輸出信息記錄在日誌文件中。
- Web界面:可以通過Web用戶界面,方便地查看程序狀態、日誌信息等。
五、總結
Pythonsupervisor是一款Python程序監控與管理工具,能夠方便地對Python程序進行監控和管理,同時提供了很多擴展功能,如自動啟動、郵件通知、進程日誌和Web界面等。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/285837.html