mirror of
https://gitee.com/hyperf/hyperf.git
synced 2024-12-04 20:58:13 +08:00
2.3 KiB
2.3 KiB
Supervisor 部署
Supervisor 是 Linux/Unix
系統下的一個進程管理工具。可以很方便的監聽、啓動、停止和重啓一個或多個進程。通過 Supervisor 管理的進程,當進程意外被 Kill
時,Supervisor 會自動將它重啓,可以很方便地做到進程自動恢復的目的,而無需自己編寫 shell
腳本來管理進程。
安裝 Supervisor
這裏僅舉例 CentOS
系統下的安裝方式:
# 安裝 epel 源,如果此前安裝過,此步驟跳過
yum install -y epel-release
yum install -y supervisor
創建一個配置文件
cp /etc/supervisord.conf /etc/supervisord.d/supervisord.conf
編輯新複製出來的配置文件 /etc/supervisord.d/supervisord.conf
,並在文件結尾處添加以下內容後保存文件:
# 新建一個應用並設置一個名稱,這裏設置為 hyperf
[program:hyperf]
# 設置命令在指定的目錄內執行
directory=/var/www/hyperf/
# 這裏為您要管理的項目的啓動命令
command=php ./bin/hyperf.php start
# 以哪個用户來運行該進程
user=root
# supervisor 啓動時自動該應用
autostart=true
# 進程退出後自動重啓進程
autorestart=true
# 進程持續運行多久才認為是啓動成功
startsecs=1
# 重試次數
startretries=3
# stderr 日誌輸出位置
stderr_logfile=/var/www/hyperf/runtime/stderr.log
# stdout 日誌輸出位置
stdout_logfile=/var/www/hyperf/runtime/stdout.log
!> 建議同時增大配置文件中的 minfds
配置項,默認為 1024
。同時也應該修改系統的 ulimit,防止出現 Failed to open stream: Too many open files
的問題。
啓動 Supervisor
運行下面的命令基於配置文件啓動 Supervisor 程序:
supervisord -c /etc/supervisord.d/supervisord.conf
使用 supervisorctl 管理項目
# 啓動 hyperf 應用
supervisorctl start hyperf
# 重啓 hyperf 應用
supervisorctl restart hyperf
# 停止 hyperf 應用
supervisorctl stop hyperf
# 查看所有被管理項目運行狀態
supervisorctl status
# 重新加載配置文件
supervisorctl update
# 重新啓動所有程序
supervisorctl reload