flask-gunicorn 报错:Worker failed to boot

报错如下:

Traceback (most recent call last):
  File "/data/server/test_server/venv/lib/python3.6/site-packages/gunicorn/arbiter.py", line 210, in run
    self.sleep()
  File "/data/server/test_server/venv/lib/python3.6/site-packages/gunicorn/arbiter.py", line 360, in sleep
    ready = select.select([self.PIPE[0]], [], [], 1.0)
  File "/data/server/test_server/venv/lib/python3.6/site-packages/gunicorn/arbiter.py", line 245, in handle_chld
    self.reap_workers()
  File "/data/server/test_server/venv/lib/python3.6/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
    raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/data/server/test_server/venv/bin/gunicorn", line 11, in <module>
    sys.exit(run())
  File "/data/server/test_server/venv/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 61, in run
    WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
  File "/data/server/test_server/venv/lib/python3.6/site-packages/gunicorn/app/base.py", line 223, in run
    super(Application, self).run()
  File "/data/server/test_server/venv/lib/python3.6/site-packages/gunicorn/app/base.py", line 72, in run
    Arbiter(self).run()
  File "/data/server/test_server/venv/lib/python3.6/site-packages/gunicorn/arbiter.py", line 232, in run
    self.halt(reason=inst.reason, exit_status=inst.exit_status)
  File "/data/server/test_server/venv/lib/python3.6/site-packages/gunicorn/arbiter.py", line 345, in halt
    self.stop()
  File "/data/server/test_server/venv/lib/python3.6/site-packages/gunicorn/arbiter.py", line 393, in stop
    time.sleep(0.1)
  File "/data/server/test_server/venv/lib/python3.6/site-packages/gunicorn/arbiter.py", line 245, in handle_chld
    self.reap_workers()
  File "/data/server/test_server/venv/lib/python3.6/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
    raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
Traceback (most recent call last):
  File "/data/server/test_server/venv/lib/python3.6/site-packages/gunicorn/arbiter.py", line 225, in run
    handler()
  File "/data/server/test_server/venv/lib/python3.6/site-packages/gunicorn/arbiter.py", line 260, in handle_term
    raise StopIteration
StopIteration

解决经历

问题描述
  • 在用supervisor启动flask服务的时候发现报错
  • 1, 第一次查看日志发现报错原因为:
    • 原因:supervisor 指定日志-控制台日志所有者为root,而项目配置启动权限为user_00
    • 解决:找到相应日志 chmod / chown user:user_group *.log
  • 2, 第二次报错如上图
    • 1,报错代码如上,故没有考虑到是因为权限问题
    • 2,不过尝试用root用户发现可以启动,但是user_00不行。不过报错如上图,依旧没有说权限问题,故还是不知道到底权限限制在哪里
    • 3, 再次尝试在Google上搜索,在Stack Overflow上看到大部分原因是因为权限问题
    • 4,再次用supervisor的启动服务,失败
      • 跟进supervisor的error.log,发现还是因为权限问题
      • 权限问题: 项目主要日志所有者变成了root
    • 5, 修改项目自带python日志的权限
  • 3, 其他情况:
    • 有人pip install 了某些包,但是包的所有者为root
    • 解决办法就是找到这个包,然后修改包的权限
避免
  • 加强对于root权限的控制
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值