Supervisor 是一個用 Python 開發的進程管理工具,可將非守護進程轉為守護進程運行,提供進程啟動、停止、重啟、狀態監控、日誌管理等功能,廣泛用於生產環境管理 Web 應用、佇列工作者等長期運行進程。
| 優點 | 缺點 |
|---|---|
| 設定檔簡單(INI 格式) | 被管理進程必須以前景模式運行 |
| 精準的進程控制(啟動/停止/重啟) | Supervisor 退出會導致受管進程一同退出 |
| 支援進程群組管理 | |
| 提供 XML-RPC 擴展介面 | |
| 支援 FastCGI 進程管理 | |
| 事件監聽支援(如定時任務觸發) |
/etc/supervisor/supervisord.conf)[unix_http_server]
file=/var/run/supervisor.sock
chmod=0700
[supervisord]
logfile=/var/log/supervisor/supervisord.log
pidfile=/var/run/supervisord.pid
childlogdir=/var/log/supervisor
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock
[program:myapp]
command=/opt/myapp/bin/run.sh
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/supervisor/myapp.log
[include]
files = /etc/supervisor/conf.d/*.conf
supervisorctl status - 查看所有受管進程狀態supervisorctl start|stop|restart - 啟動/停止/重啟指定進程supervisorctl reload - 重新載入設定並重啟 supervisordsupervisorctl tail -f - 即時查看進程輸出日誌在 [program:php-fpm] 區塊設定 command=php-fpm、process_name=%(program_name)s_%(process_num)02d、numprocs=4 即可讓 Supervisor 管理多個 PHP-FPM 工作者進程。
Supervisor 以輕量、易設定、功能完整著稱,是 Linux 伺服器上管理長期運行進程的首選工具。善用其群組管理、事件監聽與 RPC 擴展,可構建健壯的進程監控體系。
tar 打包壓縮完全手冊:壓縮、解壓、查詢、追加、合併、排除檔案六大場景
Ubuntu 安裝遊戲 Battle for Wesnoth (韋諾之戰) 1.12 從源碼編譯完整步驟
Linux 系統安裝與使用 Trickle 限制應用程式頻寬
Linux 掛載點與磁碟關聯查看全攻略:df、mount、lsblk、findmnt 多維度對比
CrunchBang Linux 恢復 Openbox 預設選單配置:一鍵修復 menu.xml
Linux 安裝 Jira 完整指南:JDK + MySQL + Tomcat 三步走