1、安装
yum install -y supervisor
安装好后在/etc/会生成一个supervisord.conf文件及一个supervisord.d文件目录
2、查看supervisor是否安装成功
supervisord --version
3、启动
supervisord -c /etc/supervisord.conf
4、查看supervisor是否启动成功
ps -ef|grep supervisord
5、设置supervisor 开机启动
systemctl enable supervisord
检查是否是开机启动
systemctl is-enabled supervisord
6、启动服务
systemctl start supervisord
启动时可能回报错:Another program is already listening on a port that one of our HTTP servers is config...rvisord.
解决方案:
执行命令 find / -name supervisor.sock 然后 unlink /路径/supervisor.sock 最后再执行启动命令 systemctl start supervisord
7、查看状态
systemctl status supervisord.service
8、配置supervisor ,web管理页面
修改配置信息,supervisor 默认配置文件,放在 /etc/supervisord.conf 路径中:
[inet_http_server] ; HTTP 服务器,提供 web 管理界面 port=*:9001 ; Web 管理后台运行的 IP 和端口 username=user ; 登录管理后台的用户名 password=1234 ; 登录管理后台的密码
[include]
files = supervisord.d/*.ini ;配置文件夹
修改完之后重启:
supervisorctl reload
然后通过http://ip:9001/访问web界面,账户名密码就是你配置的,效果如下:
如果外网无法访问的话
创建配置文件
创建一个.ini文件,放在目录supervisord.d下
[program:demo] ;程序名称 command=dotnet demo.dll ; 运行命令 directory=/web/publish;目录 environment=ASPNETCORE_ENVIRONMENT=Production;环境变量 user=root;用户 stopsignal=INT autostart=true;如果是true的话,子进程将在supervisord启动后被自动启动 autorestart=true;进程死掉后自动重启的情况 stderr_logfile=/var/log/demo/demo.err.log;错误日志文件 stdout_logfile=/var/log/demo/demo.out.log;输出日志文件
重启
systemctl restart supervisord
查看是否生效
supervisorctl status
然后把Xshell关了,浏览器中输入:http://ip:8080/api/values,也能看到以下页面:
supervisorctl 常用命令
查看任务状态:supervisorctl status
启动任务:supervisorctl start <name>
停止任务:supervisorctl stop <name>
重启任务:supervisorctl restart <name>
清除日志文件:supervisorctl clear <name>
清除多个日志文件:supervisorctl clear <name> <name>
清除所有日志文件:supervisorctl clear all
移除任务:supervisorctl remove <name>
supervisor 重启 启动 命令
sudo supervisorctl reload 首次重起
sudo supervisorctl start all 首次重起
systemctl restart supervisord 重启
supervisorctl reload 重启
可能是由于supervisord进程停止了,建议重新运行
sudo supervisord -c /etc/supervisord.conf
sudo supervisorctl -c /etc/supervisord.conf
1 问题 *** Unknown syntax: supervisorctl
生成配置文件:
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisord.conf
打开配置文件修改一点东西;
vim /etc/supervisord.conf
要将底部的
[include]
;files = relative/directory/*.ini
files=/etc/supervisor/*.conf
第一类:
报错信息:
error: <class 'socket.error'>, [Errno 2] No such file or directory: file: <string> line: 1
解决办法:
这个可能有多种原因,可能是已经启动过了也可能是没权限,解决步骤如下:
1. 先要确认是否已经启动过了:’ps -ef | grep supervisord’
2. 如果有的话先kill掉
3. 运行下面命令:
sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
4. 再尝试重新启动:supervisord -c /etc/supervisord.conf(如果没有文件找个别人的配置拷贝过来或者运行echo_supervisord_conf > /etc/supervisord.conf)