我正在尝试按照本教程部署我的 Flask 应用程序:https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu -18-04
我看到,当前命令从单元文件中消失,命令列表的执行将不会恢复。当我检查我刚刚配置的gunicorn的systemctl时。
提前谢谢你
我的解决方案是停止项目,重新加载守护进程并再次启动。
sudo systemctl stop PROJECT_NAME
sudo systemctl daemon-reload
sudo systemctl start PROJECT_NAME
sudo systemctl enable PROJECT_NAME
我知道我回复晚了,但这确实是一件很奇怪的事情,似乎偶尔会发生一次。
修复方法很模糊:您必须手动编辑系统文件,因此在执行此操作时要格外小心。有问题的文件是
/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 很可能使用更早的版本。
您必须停止并禁用该服务:
sudo systemctl stop myproject
sudo systemctl disable myproject
对于我来说,我正在创建一个 Ruby 应用程序服务,并在 systemd 文件中进行了更改以在不同的 ip 中启动,但我遇到了相同的错误。正如@kefeng91建议的那样,我这样做了
并在完成后工作
systemctl 守护进程重新加载 并检查
systemctl 状态示例.service
据我了解,在 .service 的每次更改中,我们都需要停止并重新加载服务