我使用 FLASK 创建了一个 API,我试图通过创建 systemd 服务将其部署在 linux 服务器上。
我已经使用 direnv 为应用程序设置输入参数,例如数据库连接。下面是文件的样子:
uwsgi 配置如下:
systemd 文件具有以下条目:
每当我尝试在浏览器上访问服务时,我的 uwsgi 日志中都会出现以下错误:
--- 未找到 python 应用程序,检查您的启动日志是否有错误 --- [pid: 23791|app: -1|req: -1/3] 192.168.9.180 () {44 vars in 719 bytes} [10 月 11 日星期四14:35:09 2018] GET / => 在 0 毫秒内生成 21 个字节(HTTP/1.1 500) 83 个字节中的 2 个标头(1 个在核心 0 上开关)
我的理解是 systemd 文件中的 ExecStart 命令无法调用 direnv 设置变量,因此我添加了 ExecStartPre 条目,但似乎不起作用。
任何提示/想法表示赞赏。
注意:当我从我的 python 虚拟环境中通过命令行运行 uwsgi 时,可以无错误地访问该应用程序:
uwsgi --socket 0.0.0.0:5000 --protocol=http -w app:app