Supervisor 是一个进程管理工具,用于在 Unix-like 操作系统上管理和监控进程。下面是针对不同项目类型(Java、Python、Go、C)的 Supervisor 配置文件示例。每个示例都包含了需要修改的内容,如项目路径和执行命令。
Java 项目的 Supervisor 配置例子
假设我们的 Java 项目是一个 Spring Boot 应用,生成的可执行 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"
需要修改的内容
- command: 可执行 jar 文件的路径。
- directory: 应用所在的目录。
- stderr_logfile 和 stdout_logfile: 错误日志和输出日志的路径。
- user: 运行该程序的用户。
- environment: Java 环境变量。
Python 项目的 Supervisor 配置例子
假设我们的 Python 项目是一个 Flask 应用,入口文件为 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"
需要修改的内容
- command: Python 文件的路径。
- directory: 应用所在的目录。
- stderr_logfile 和 stdout_logfile: 错误日志和输出日志的路径。
- user: 运行该程序的用户。
- environment: Python 环境变量。
Go 项目的 Supervisor 配置例子
假设我们的 Go 项目编译后生成的可执行文件为 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
需要修改的内容
- command: 可执行文件的路径。
- directory: 应用所在的目录。
- stderr_logfile 和 stdout_logfile: 错误日志和输出日志的路径。
- user: 运行该程序的用户。
C 项目的 Supervisor 配置例子
假设我们的 C 项目编译后生成的可执行文件为 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
需要修改的内容
- command: 可执行文件的路径。
- directory: 应用所在的目录。
- stderr_logfile 和 stdout_logfile: 错误日志和输出日志的路径。
- user: 运行该程序的用户。
通用步骤
安装 Supervisor
sudo apt-get install supervisor
创建配置文件
将相应的配置文件内容复制到 /etc/supervisor/conf.d/ 目录下,并保存为合适的文件名(如 java_app.conf)。
更新 Supervisor 配置
sudo supervisorctl reread
sudo supervisorctl update
启动并查看状态
sudo supervisorctl start <program_name>
sudo supervisorctl status
例如,<program_name> 为 java_app。
通过这些配置文件和步骤,我们可以使用 Supervisor 来管理不同类型的项目。根据具体情况,修改配置文件中的相应部分,如路径、用户和环境变量。