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

问题描述 投票:0回答:4

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

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

this是我的单位文件。

提前谢谢你

ubuntu nginx flask gunicorn
4个回答
6
投票

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

sudo systemctl stop PROJECT_NAME
sudo systemctl daemon-reload
sudo systemctl start PROJECT_NAME
sudo systemctl enable PROJECT_NAME

1
投票

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

修复方法很模糊:您必须手动编辑系统文件,因此在执行此操作时要格外小心。有问题的文件是

/usr/lib/systemd/system/initrd-switch-root.service

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

ExecStart=systemctl --no-block switch-root /sysroot

并将其更改为

ExecStart=/usr/bin/systemctl --no-block switch-root /sysroot

然后运行

systemctl daemon-reload
,您应该能够启动您的设备。

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

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

请注意,上述修复早在 2020 年中期就已应用于

systemd
版本 246 或 247 左右。然而,Ubuntu 20.04.3 LTS,截至今天(2021 年 9 月),still 使用
systemd
245。您自己的 Ubuntu 18.04 很可能使用更早的版本。


1
投票

您必须停止并禁用该服务:

sudo systemctl stop myproject
sudo systemctl disable myproject

0
投票

对于我来说,我正在创建一个 Ruby 应用程序服务,并在 systemd 文件中进行了更改以在不同的 ip 中启动,但我遇到了相同的错误。正如@kefeng91建议的那样,我这样做了

  1. systemctl 停止 example.service
  2. systemctl 禁用 example.service
  3. systemctl 启用 example.service
  4. systemctl 启动 example.service

并在完成后工作

systemctl 守护进程重新加载 并检查

systemctl 状态示例.service

据我了解,在 .service 的每次更改中,我们都需要停止并重新加载服务

© www.soinside.com 2019 - 2024. All rights reserved.