【问题标题】:managing uWSGI with Upstart使用 Upstart 管理 uWSGI
【发布时间】:2013-07-16 02:54:14
【问题描述】:

我正在尝试使用 Upstart 配置 uWSGI。

我创建了文件/etc/init/uwsgi-flask.conf

description "uwsgi for flask"
start on runlevel [2345]
stop on runlevel [06]
exec /appdir/virtualenvdir/bin/uwsgi /appdir/virtualenvdir/uwsgi.ini --die-on-term

重新启动时,它可以正确启动,但我无法停止服务。

如果我在 shell initctl stop uwsgi-flask 上输入,它会给出:

initctl: Unknown instance:

有人知道吗?

【问题讨论】:

  • 停止作业的标准命令是sudo stop service-name。如果您没有以 root 身份执行initctl,那么实例未知是合乎逻辑的,因为在启动(重新启动)时进程将在用户空间中不可用,因为它将由 root 作为系统作业启动。但是,我假设您以 root 身份停止工作。你能发布/var/log/upstart/uwsgi-flack.log的相关内容吗?听起来您的工作要么根本没有开始,要么在开始后退出。你可以找到一些有用的信息here
  • @schkovich 我实际上正试图以运行 uwsgi 的用户身份停止服务,这是一个非 root 用户。我试过sudo stop uwsgi-flask,但它给出了类似stop: Unknown instance: 的东西。日志说 uwsgi 服务器正在运行,但我无法用我输入的命令停止它。
  • Daniele,我也有同样的问题。你找到解决办法了吗?
  • @MichelMüller,最终我决定放弃 Python 并使用 Go 编写我的 web 服务。我想我已经设法解决了这个问题,但我现在不记得了。

标签: python uwsgi upstart


【解决方案1】:

您的 ini 文件中可能有 daemonize=some/log/file/path。这将使进程以“正常”退出代码退出,因此 Upstart 会认为您希望停止作业并终止作业。

移除守护进程,upstart 将在前台跟踪进程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 2014-06-15
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多