Supervisor
是一个进程管理工具,用于监控和控制在其配置下的进程。以下是 Supervisor
的基本使用步骤:
- 安装
Supervisor
- 使用包管理工具进行安装,例如在 Ubuntu 上:
sudo apt-get install supervisor
-
配置
Supervisor
- 主配置文件通常位于
/etc/supervisor/supervisord.conf
。 - 您还可以在
/etc/supervisor/conf.d/
目录下创建单独的进程配置文件,每个文件对应一个要管理的进程。
- 主配置文件通常位于
-
编写进程配置
- 例如,创建一个名为
myapp.conf
的文件,内容如下:
- 例如,创建一个名为
[program:myapp]
command=/path/to/your/app
directory=/working/directory
autostart=true
autorestart=true
stderr_logfile=/var/log/myapp.err.log
stdout_logfile=/var/log/myapp.out.log
[program:myapp]
:定义了一个程序段,myapp
是程序的名称。command
:要启动的程序的命令。directory
:程序的工作目录。autostart
:是否自动启动。autorestart
:进程意外退出时是否自动重启。stderr_logfile
和stdout_logfile
:分别指定标准错误和标准输出的日志文件路径。
-
启动
Supervisor
- 执行
sudo supervisorctl reread
重新读取配置。 - 执行
sudo supervisorctl update
更新配置。 - 执行
sudo service supervisor start
启动Supervisor
服务。
- 执行
-
管理进程
- 使用
sudo supervisorctl status
查看进程状态。 - 使用
sudo supervisorctl start myapp
启动指定进程。 - 使用
sudo supervisorctl stop myapp
停止指定进程等。
- 使用
在 Supervisor
的配置文件(.conf
)中,常见的参数及其含义如下:
-
[program:program_name]
- 定义一个要管理的程序段,
program_name
是您为程序指定的名称。
- 定义一个要管理的程序段,
-
command
- 要执行的命令,用于启动程序。
-
directory
- 程序的工作目录。
-
environment
- 为程序设置环境变量,格式为
ENV_VAR="value"
,可以有多行。
- 为程序设置环境变量,格式为
-
user
- 以指定用户身份运行程序。
-
autostart
- 布尔值,决定程序是否在
Supervisor
启动时自动启动,true
表示自动启动,false
表示不自动启动。
- 布尔值,决定程序是否在
-
autorestart
- 决定程序在意外退出时是否自动重启。常见的值有
true
(总是重启)、false
(从不重启)、unexpected
(仅在意外退出时重启)。
- 决定程序在意外退出时是否自动重启。常见的值有
-
startretries
- 程序启动失败时的重试次数。
-
startsecs
- 程序启动后,等待多少秒认为其成功启动。
-
stopsignal
- 用于停止程序的信号,例如
TERM
、INT
等。
- 用于停止程序的信号,例如
-
stopwaitsecs
- 发送停止信号后,等待多少秒认为程序已经停止。
-
stdout_logfile
- 程序的标准输出日志文件路径。
-
stderr_logfile
- 程序的标准错误日志文件路径。
-
priority
- 进程的优先级,数字越大优先级越低