麒麟服务器上快速部署,这里为你汇总 Supervisor 从安装到 Web 端监控的完整全流程手册。
一、 安装阶段(基于 Python 3.11)
由于麒麟默认源可能缺失,推荐使用 pip 安装:
# 1. 安装 pip
yum install python3-pip -y
# 2. 安装 supervisor
pip3 install supervisor
# 3. 创建配置目录和日志目录
mkdir -p /etc/supervisor/conf.d
mkdir -p /var/run/supervisor
mkdir -p /var/log/supervisor
二、 主配置文件编写
路径: /etc/supervisor/supervisord.conf
执行 echo_supervisord_conf > /etc/supervisor/supervisord.conf 生成后,按以下关键点修改:
[unix_http_server]
file=/var/run/supervisor/supervisor.sock
[inet_http_server] ; 开启网页管理端
port=*:9001 ; 访问地址 http://IP:9001
username=admin ; 网页登录账号
password=yourpassword ; 网页登录密码
[supervisord]
logfile=/var/log/supervisor/supervisord.log
pidfile=/var/run/supervisor/supervisord.pid
[supervisorctl]
serverurl=unix:///var/run/supervisor/supervisor.sock
[include]
files = /etc/supervisor/conf.d/*.conf ; 包含子配置
进阶:让 Supervisor 自己也变成开机自启
因为你是通过 pip 安装的,系统还不知道要把 Supervisor 当成服务。你可以把它注册给系统的 systemd:
-
vi /usr/lib/systemd/system/supervisord.servic -
[Unit] Description=Supervisor daemon [Service] Type=forking ExecStart=/usr/local/bin/supervisord -c /etc/supervisor/supervisord.conf ExecStop=/usr/local/bin/supervisorctl shutdown ExecReload=/usr/local/bin/supervisorctl reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target -
激活服务:
systemctl daemon-reload systemctl enable supervisord systemctl start supervisord
三、 业务守护配置(MQTT 示例)
路径: /etc/supervisor/conf.d/mqtt_broker.conf
[program:mqtt_broker]
; 这里的 dotnet 必须使用 actual 绝对路径 (可以用 whereis dotnet 查询)
command=/usr/bin/dotnet MqttBrokerApp.dll
; 运行程序的目录
directory=/home/inetpub/mqtt/broke/
; 进程管理设置
autostart=true ; 随 supervisor 启动
autorestart=true ; 崩溃自动重启
startsecs=5 ; 运行 5 秒没挂才算成功
startretries=3 ; 启动失败尝试次数
; 权限与日志
user=root
stdout_logfile=/var/log/supervisor/mqtt_out.log
stderr_logfile=/var/log/supervisor/mqtt_err.log
; 环境变量
environment=ASPNETCORE_ENVIRONMENT="Production"
四、 管理命令汇总
| 操作 | 命令 |
| 启动服务端 | supervisord -c /etc/supervisor/supervisord.conf |
| 进入交互控制台 | supervisorctl -c /etc/supervisor/supervisord.conf |
| 重新读取配置 | supervisorctl update |
| 查看进程状态 | supervisorctl status |
| 重启特定进程 | supervisorctl restart mqtt_broker |
| 关闭所有守护 | supervisorctl shutdown |
五、 常见坑点排查
-
路径找不到:Supervisor 不会自动读取用户的
.bashrc路径。所有的dotnet、python命令建议写绝对路径。 -
Web端连不上:
-
检查
supervisord.conf是否配置了* :9001。 -
麒麟防火墙开启:
firewall-cmd --add-port=9001/tcp --permanent && firewall-cmd --reload。
-
-
Error: FileNotFoundError:通常是因为
/var/run/supervisor/目录不存在或.sock文件被意外删除,重启supervisord即可解决。

4770

被折叠的 条评论
为什么被折叠?



