Gunicorn 当前命令从单元文件中消失

Ale*_*lex 8 ubuntu nginx flask gunicorn

我正在尝试按照本教程部署我的烧瓶应用程序:https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu-18 -04

我看到错误,当前命令从单元文件中消失,命令列表的执行将不会恢复。当我检查我刚刚配置的gunicorn的systemctl时。

我的单位文件。

先感谢您

rum*_*ajs 7

我的解决方案是停止项目,重新加载守护进程并再次启动。

sudo systemctl stop PROJECT_NAME
sudo systemctl daemon-reload
sudo systemctl start PROJECT_NAME
sudo systemctl enable PROJECT_NAME
Run Code Online (Sandbox Code Playgroud)


Gwy*_*lyn 1

我知道我回复晚了,但这确实是一件很奇怪的事情,似乎偶尔会发生一次。

修复方法很模糊:您必须手动编辑系统文件,因此在执行此操作时要格外小心。有问题的文件是/usr/lib/systemd/system/initrd-switch-root.service.

以 root 身份,使用您最喜欢的编辑器打开该文件,然后向下滚动到显示以下内容的行:

ExecStart=systemctl --no-block switch-root /sysroot
Run Code Online (Sandbox Code Playgroud)

并将其更改为

ExecStart=/usr/bin/systemctl --no-block switch-root /sysroot
Run Code Online (Sandbox Code Playgroud)

然后运行systemctl daemon-reload​​,您应该能够启动您的设备。

就我而言(一个完全不同的应用程序),我注意到错误仍然存​​在,但至少应用程序真正启动了......

来源: https: //github.com/systemd/systemd/issues/16076

请注意,上述修复systemd早在 2020 年中期就已应用于版本 246 或 247 左右。然而,截至今天(2021 年 9 月),Ubuntu 20.04.3 LTS仍然使用systemd24 5。您自己的 Ubuntu 18.04 很可能使用更早的版本。