構(gòu)建工程化:各類語言項(xiàng)目配置Supervisor
Supervisor 是一個(gè)進(jìn)程管理工具,用于在 Unix-like 操作系統(tǒng)上管理和監(jiān)控進(jìn)程。下面是針對不同項(xiàng)目類型(Java、Python、Go、C)的 Supervisor 配置文件示例。每個(gè)示例都包含了需要修改的內(nèi)容,如項(xiàng)目路徑和執(zhí)行命令。
Java 項(xiàng)目的 Supervisor 配置例子
假設(shè)我們的 Java 項(xiàng)目是一個(gè) Spring Boot 應(yīng)用,生成的可執(zhí)行 jar 文件為 app.jar。
Supervisor 配置文件 (/etc/supervisor/conf.d/java_app.conf)
[program:java_app]
command=java -jar /path/to/your/app.jar
directory=/path/to/your/
autostart=true
autorestart=true
stderr_logfile=/var/log/java_app.err.log
stdout_logfile=/var/log/java_app.out.log
user=your_user
environment=JAVA_HOME="/path/to/java/home"
需要修改的內(nèi)容
- command: 可執(zhí)行 jar 文件的路徑。
- directory: 應(yīng)用所在的目錄。
- stderr_logfile 和 stdout_logfile: 錯(cuò)誤日志和輸出日志的路徑。
- user: 運(yùn)行該程序的用戶。
- environment: Java 環(huán)境變量。
Python 項(xiàng)目的 Supervisor 配置例子
假設(shè)我們的 Python 項(xiàng)目是一個(gè) Flask 應(yīng)用,入口文件為 app.py。
Supervisor 配置文件 (/etc/supervisor/conf.d/python_app.conf)
[program:python_app]
command=python /path/to/your/app.py
directory=/path/to/your/
autostart=true
autorestart=true
stderr_logfile=/var/log/python_app.err.log
stdout_logfile=/var/log/python_app.out.log
user=your_user
environment=PYTHONPATH="/path/to/your/python_env"
需要修改的內(nèi)容
- command: Python 文件的路徑。
- directory: 應(yīng)用所在的目錄。
- stderr_logfile 和 stdout_logfile: 錯(cuò)誤日志和輸出日志的路徑。
- user: 運(yùn)行該程序的用戶。
- environment: Python 環(huán)境變量。
Go 項(xiàng)目的 Supervisor 配置例子
假設(shè)我們的 Go 項(xiàng)目編譯后生成的可執(zhí)行文件為 app.
Supervisor 配置文件 (/etc/supervisor/conf.d/go_app.conf)
[program:go_app]
command=/path/to/your/app
directory=/path/to/your/
autostart=true
autorestart=true
stderr_logfile=/var/log/go_app.err.log
stdout_logfile=/var/log/go_app.out.log
user=your_user
需要修改的內(nèi)容
- command: 可執(zhí)行文件的路徑。
- directory: 應(yīng)用所在的目錄。
- stderr_logfile 和 stdout_logfile: 錯(cuò)誤日志和輸出日志的路徑。
- user: 運(yùn)行該程序的用戶。
C 項(xiàng)目的 Supervisor 配置例子
假設(shè)我們的 C 項(xiàng)目編譯后生成的可執(zhí)行文件為 app.
Supervisor 配置文件 (/etc/supervisor/conf.d/c_app.conf)
[program:c_app]
command=/path/to/your/app
directory=/path/to/your/
autostart=true
autorestart=true
stderr_logfile=/var/log/c_app.err.log
stdout_logfile=/var/log/c_app.out.log
user=your_user
需要修改的內(nèi)容
- command: 可執(zhí)行文件的路徑。
- directory: 應(yīng)用所在的目錄。
- stderr_logfile 和 stdout_logfile: 錯(cuò)誤日志和輸出日志的路徑。
- user: 運(yùn)行該程序的用戶。
通用步驟
安裝 Supervisor
sudo apt-get install supervisor
創(chuàng)建配置文件
將相應(yīng)的配置文件內(nèi)容復(fù)制到 /etc/supervisor/conf.d/ 目錄下,并保存為合適的文件名(如 java_app.conf)。
更新 Supervisor 配置
sudo supervisorctl reread
sudo supervisorctl update
啟動并查看狀態(tài)
sudo supervisorctl start <program_name>
sudo supervisorctl status
例如,<program_name> 為 java_app。
通過這些配置文件和步驟,我們可以使用 Supervisor 來管理不同類型的項(xiàng)目。根據(jù)具體情況,修改配置文件中的相應(yīng)部分,如路徑、用戶和環(huán)境變量。