在 Ubuntu 上安装和配置 Supervisor 的步骤如下:

1. 安装 Supervisor

Supervisor 可以通过 Ubuntu 的官方软件源直接安装:

sudo apt update
sudo apt install supervisor

2. 启动 Supervisor 服务

安装完成后,Supervisor 会自动启动。如果没有启动,可以手动运行:

sudo systemctl start supervisor

3. 设置开机自启

sudo systemctl enable supervisor

4. 检查运行状态

sudo systemctl status supervisor

如果显示 active (running),说明 Supervisor 正在运行。


5. 配置 Supervisor

Supervisor 的配置文件通常位于 /etc/supervisor/ 目录: - 主配置文件/etc/supervisor/supervisord.conf(一般不需要修改) - 自定义进程配置:放在 /etc/supervisor/conf.d/ 目录下,以 .conf 结尾。

示例:配置一个 Python 程序

假设你要守护一个 Python 脚本 /home/user/myapp/main.py,可以创建一个配置文件:

sudo nano /etc/supervisor/conf.d/myapp.conf

填入以下内容:

[program:myapp]
command=python3 /home/user/myapp/main.py  ; 要执行的命令
directory=/home/user/myapp               ; 程序的工作目录
user=user                                ; 运行程序的用户
autostart=true                           ; 随 Supervisor 启动
autorestart=true                         ; 崩溃后自动重启
stderr_logfile=/var/log/myapp.err.log    ; 错误日志
stdout_logfile=/var/log/myapp.out.log    ; 输出日志

6. 重新加载配置

修改配置后,让 Supervisor 重新加载:

sudo supervisorctl reread
sudo supervisorctl update

7. 管理进程

  • 查看所有进程状态bash sudo supervisorctl status
  • 启动/停止某个进程bash sudo supervisorctl start myapp sudo supervisorctl stop myapp
  • 重启所有进程bash sudo supervisorctl reload

8. 可选:Web 界面(如果需要)

Supervisor 提供一个简单的 Web 管理界面,可以编辑主配置文件启用:

sudo nano /etc/supervisor/supervisord.conf

找到并取消注释以下内容:

[inet_http_server]
port=0.0.0.0:9001
username=user  ; 自定义用户名
password=123   ; 自定义密码

然后重启 Supervisor:

sudo systemctl restart supervisor

访问 http://<服务器IP>:9001 即可进入管理界面。


常见问题

  1. 日志权限问题
    如果日志文件无法写入,检查目录权限: bash sudo chown -R user:user /var/log/myapp*

  2. 配置错误检查
    使用 sudo supervisorctl tail myapp stderr 查看错误日志。

  3. Supervisor 未启动
    检查日志: bash sudo journalctl -u supervisor -f