【问题标题】:Error when creating log file in uwsgi ini file using date使用日期在 uwsgi ini 文件中创建日志文件时出错
【发布时间】:2017-10-27 15:47:29
【问题描述】:

我正在尝试使用 uWSGI 在 Nginx 上部署我的 Flask 应用程序。 我使用this 教程来部署我的烧瓶应用程序。 我有以下ini文件: 提取器.ini

    [uwsgi]
    module = wsgi:app

    master = true 
    processes = 5

    socket = extractor.sock
    chmod-socket = 660

    vacuum = true

    log-date = @(exec://date +%%F-%%H-%%M)
    logdir = /home/rkok/extractor/logs/
    daemonize = %(logdir)uwsgi-%(log-date).log

    die-on-term = true

但是,当我尝试使用

开始我的项目时
sudo systemctl start extractor

当我检查服务状态时它显示以下错误:

uwsgi[31788]: /bin/sh: 1: date: not found

我已阅读 here,所有 2.x 版本都应支持 @(exec://date +%%F-%%H-%%M)。 %%F-%%H-%%M在ini文件中应该变成YYYY-mm-dd-HH-MM格式。

我的反应是它说它可能是我的路径,但我不确定如何在 ini 文件中检查我的路径,因为我使用的是 virtualenv 而不是我的系统环境。 我的系统设置:

Ubuntu 16.04 LTS x64
Python 3.5.2
Virtualenv 15.1.0
uWSGI 2.0.15
Nginx 1.10.3

所以我的问题是:如何让 uWSGI 使用 ini 文件中的系统日期时间生成新的日志文件?

ps。当我省略 @(exec://date +%%F-%%H-%%M) 部分时,我的烧瓶应用程序部署成功。

【问题讨论】:

  • 尝试使用/bin/date 代替date 看看是否有帮助
  • 成功了!非常感谢。我将用有效的答案更新我的问题。

标签: python nginx flask uwsgi logfiles


【解决方案1】:

问题可能是因为两个环境中的 PATH 环境变量不同。因此,您应该改用绝对路径。改变

log-date = @(exec://date +%%F-%%H-%%M)

到

log-date = @(exec:///bin/date +%%F-%%H-%%M)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-14
    • 2015-04-05
    • 2011-05-09
    • 2018-12-25
    • 2014-04-10
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多