前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这个python程序怎么就是没更新

这个python程序怎么就是没更新

原创
作者头像
莫韵
发布2018-06-07 13:34:51
9150
发布2018-06-07 13:34:51
举报
文章被收录于专栏:莫韵的专栏莫韵的专栏

记录一次诡异的python-supervisor的异常退出

python代码环境

  1. python2.7的环境
  2. tlinux2.2(centos7) 系列
  3. python程序的代码,托管给supervisor

代码更新步骤

  1. 升级代码
  2. 然后重启服务 `supervisorctl restart $python-name

现象

1.同一份代码,本地使用python手动运行没问题

  1. 通过python-supervisor托管的一直不更新

找点日志看看原因

supervisorctl status 报异常

unix:///tmp/supervisor.sock no such file

python-superviosr进程还存在

ps aux | grep supervisor root 17874 0.0 0.1 221920 12052 ? Ss Jun04 0:39 /usr/bin/python /bin/supervisord -c /etc/supervisord.conf

把supervisor进程重启一把 supervisorctl status 服务又正常了 托管的代码也同样更新成功

初步结论: supervisor的控制命令异常

那为什么 supervisor会异常

unix:///tmp/supervisor.sock no such file

异常时这个文件不存在, 重启后这个文件重新产生,怀疑是什么地方,这个文件被删除了

手动复现现象

  1. 重启supervisor进程
  2. rm unix:///tmp/supervisor.sock
  3. 发现supervisor status异常报错
  4. 但是托管的代码进程还在
supervisorctl 报错,但托管的代码还在
supervisorctl 报错,但托管的代码还在
  1. 更新托管的代码,尝试用 supervisorctl restart $python-name “ 重启失败

与现网反馈的现象一致 。 那基本确认是这个/tmp/ 被清理引起

那为什么/tmp/supervisor.sock文件会被删除

之前在tlnux1.2(centos6) 系列上面都没有这个问题 这台机器是tlinux2.2 是centos7增加了什么默认删除配置吗? google一把 “http://blog.51cto.com/kusorz/2051877/tmp目录的清理规则主要取决于/usr/lib/tmpfiles.d/tmp.conf文件的设定,默认的配置内容为:

就是systemd定期清理了/tmp/
就是systemd定期清理了/tmp/

解决方案

修改supervisord.conf的配置 把下面几个文件改到非/tmp的位置 比如我的是这样, 放到/usr/local/python-supervisor下面

file=/usr/local/python-supervisor/supervisor.sock ; the path to the socket file logfile=/usr/local/python-supervisor/supervisord.log ; main log file; default $CWD/supervisord.log pidfile=/usr/local/python-supervisor/supervisord.pid ; supervisord pidfile; default supervisord.pid serverurl=unix:////usr/local/python-supervisor/supervisor.sock ; use a unix:// URL for a unix socket

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • python代码环境
  • 代码更新步骤
  • 现象
  • 找点日志看看原因
  • 那为什么 supervisor会异常
    • 手动复现现象
      • 那为什么/tmp/supervisor.sock文件会被删除
      • 解决方案
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档