supervisor一个开源的后台托管程序,在使用过程中可能是因为机器宕机,导致supervisor没有正常关掉,在执行sudo supervisorctl,想查看进程状态时,提示

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

然后再执行sudo supervisorctl 又报错了,这次换了个错误,提示unix:///var/run/supervisor.sock refused connection

这个是supervisord没有启动,然后执行sudo supervisord -c /etc/supervisor/supervisord.conf(换成你自己的配置文件目录) 即可

然后再执行sudo supervisorctl 就可以了,这下可以看到我们托管的进程了。

 

课外知识

supervisord

是supervisor的服务端程序。

干的活:启动supervisor程序自身,启动supervisor管理的子进程,响应来自clients的请求,重启闪退或异常退出的子进程,把子进程的stderr或stdout记录到日志文件中,生成和处理Event

supervisorctl

这东西还是有点用的,如果说supervisord是supervisor的服务端程序,那么supervisorctl就是client端程序了。supervisorctl有一个类型shell的命令行界面,我们可以利用它来查看子进程状态,启动/停止/重启子进程,获取running子进程的列表等等。。。最牛逼的一点是,supervisorctl不仅可以连接到本机上的supervisord,还可以连接到远程的supervisord,当然在本机上面是通过UNIX socket连接的,远程是通过TCP socket连接的。supervisorctl和supervisord之间的通信,是通过xml_rpc完成的。 相应的配置在[supervisorctl]块里面

 

参考链接

https://blog.csdn.net/yfanjy/article/details/105975723

https://github.com/Supervisor/supervisor/issues/480

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐