首先要说的就是supervisor的本身配置文件没啥太多问题 都是很好解决的 自己写的conf文件一定要多检查 昨天查了三个小时资料弄到最后发现我在自己写的自启动conf文件中少写了一个等于号 内心真的是崩溃的
常见问题如下:
-
unix:///var/run/supervisor.sock no such file or directory
在supervisor默认配置中,其启动的sock等都会放到tmp目录,而tmp目录会自动清理(比如重启主机)导致无法使用supervisorctl命令;
修改supervisor.conf文件,修改到/var/run/及/var/log/目录
file=/var/run/supervisor.sock
serverurl=unix:///var/run/supervisor.sock ;
修改supervisor.conf文件后,要执行supervisorctl reload,重新加载配置文件;
查看配置文件目录输入:
whereis supervisor
反馈如下信息:
supervisord: /usr/bin/supervisord /etc/supervisord.conf /usr/share/man/man1/supervisord.1.gz
编辑etc下的xxx.conf就可以了
-
错误:Supervisorctl error: unix:///var/run/supervisord.sock refused connection
echo_supervisord_conf > /etc/supervisord.conf //如果已经修改了supervisor.conf,这句就不要执行了
supervisord -c /etc/supervisord.conf
supervisorctl status
-
supervisor自启动
其实自启动,也就是在主机开启的时候,执行了sudo supervisord -c /etc/supervisord.conf
vi /usr/lib/systemd/system/supervisord.service
写入以下内容:
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf#这句话根据自己实际路径来填写
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
验证一下是否为开机启动:systemctl is-enabled supervisord
反馈:enable #证明成功
-
Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting
首先关闭相关进程:ps -elf|grep supervisor
kill掉进程 接着输入:
find / -name supervisor.sock
unlink /name/supervisor.sock
unix:///var/run/supervisor.sock no such file
sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
sudo service supervisor restart
###逐一输入###因为我是在root环境下操作 所以没有加sudo 大家根据自己实际情况来操作
网友评论