首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Active:失败(结果: service-start-limit-hit)

Active:失败(结果: service-start-limit-hit)
EN

Stack Overflow用户
提问于 2020-02-17 06:16:05
回答 2查看 8.1K关注 0票数 3

在我部署python项目的任务中,我已经完成了gunicorn设置。

正在检查gunicorn状态文件(我今天早些时候刚刚运行了这个命令,它返回了以下内容):

代码语言:javascript
运行
复制
sudo systemctl status gunicorn.socket
Failed to dump process list, ignoring: No such file or directory
● gunicorn.socket - gunicorn socket
   Loaded: loaded (/etc/systemd/system/gunicorn.socket; enabled; vendor preset: enabled)
   Active: active (listening) since Sun 2020-02-16 21:42:10 UTC; 1min 16s ago
   Listen: /run/gunicorn.sock (Stream)
   CGroup: /system.slice/gunicorn.socket

我刚才去运行这个命令,输出是不同的:

代码语言:javascript
运行
复制
sudo systemctl status gunicorn.socket
● gunicorn.socket - gunicorn socket
   Loaded: loaded (/etc/systemd/system/gunicorn.socket; enabled; vendor preset: enabled)
   Active: failed (Result: service-start-limit-hit) since Sun 2020-02-16 21:45:01 UTC; 28min ago
   Listen: /run/gunicorn.sock (Stream)

Feb 16 21:42:10 ubuntu-s-1vcpu-1gb-nyc3-01 systemd[1]: Listening on gunicorn socket.
Feb 16 21:45:01 ubuntu-s-1vcpu-1gb-nyc3-01 systemd[1]: gunicorn.socket: Failed with result 'service-st
lines 1-7/7 (END)

我运行了systemctl restart ssh,这并没有解决这个问题。

有人知道这是什么原因吗?

EN

回答 2

Stack Overflow用户

发布于 2021-02-20 10:09:15

我在3天前就遇到了这样的问题。检查/var/log/syslog是解决这个问题的第一个方法。主要是因为gunicorn或nginx (或您使用的任何web服务器)中的配置错误。我按照this link中的说明操作

假设你有这样的文件夹结构(在我的假设中,你安装了django并使用了wsgi):

通过pip在安装后通过directory

  • /home/user/venv/myvenv/myproject directory

  • /home/user/venv/myvenv/bin/gunicorn ->
  1. /home/user/venv/myvenv directory
  2. /home/user/venv/myvenv/bin/gunicorn ->

安装项目后的虚拟环境

如果您创建了gunicorn服务文件(比如/etc/systemd/system/gunicorn.service),将文件gunicorn.sock放在/run/gunicorn.sock中,您可以按照下面的配置或类似如下的配置:

代码语言:javascript
运行
复制
[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target

[Service]
User=user
Group=www-data
WorkingDirectory=/home/user/venv/myvenv/myproject
ExecStart=/home/user/venv/myvenv/bin/gunicorn \
    --access-logfile - \
    --workers 3 \
    --bind unix:/run/gunicorn.sock \
    myproject.wsgi:application

[Install]
WantedBy=multi-user.target

请注意,myproject是您的python项目。有时,它不会工作,因为gunicorn不知道我的项目文件夹位置。您可以在ExecStart中添加--chdir选项,如下所示:

代码语言:javascript
运行
复制
ExecStart=/home/user/venv/myvenv/bin/gunicorn \
    --access-logfile - \
    --workers 3 \
    --bind unix:/run/gunicorn.sock \
    --chdir /home/user/venv/myvenv/myproject \
    myproject.wsgi:application

--chdir用于指向项目文件夹。不要忘记重新加载服务,每次更改gunicorn.service时,在重新启动它之前。

代码语言:javascript
运行
复制
$ sudo systemctl daemon-reload

然后:

代码语言:javascript
运行
复制
$ sudo systemctl restart gunicorn

不要与myproject.wsgi混淆。不是文件名的问题。它将调用myproject文件夹中的文件wsgi。

票数 1
EN

Stack Overflow用户

发布于 2020-07-01 00:58:08

您需要了解当gunicorn从活动状态更改为失败状态时发生的情况。使用sudo systemctl restart gunicorn.socket激活后,请与sudo tail -f /var/log/syslog进行核对

尝试访问您的网站或gunicorn正在做的任何事情,它应该会改变状态,并在syslog中打印更多信息。

如果gunicorn是来自python环境的午餐,请尝试重新安装环境,就像在this case上一样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60253711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档