【问题标题】:How can I run uWsgi as a service in CentOs?如何在 CentOs 中将 uWsgi 作为服务运行?
【发布时间】:2015-03-04 18:59:16
【问题描述】:

我很着急,我可以知道如何做到这一点,但我需要一些帮助才能做到这一点,而不会浪费太多时间。 目前我在运行 uWsgi 实例和我的 ini 文件时所做的只是:

uwsgi --ini /home/myonlinesite/uwsgi.ini --pidfile /var/run/uwsgi_serv.pid

然后停止:

uwsgi --stop  /var/run/uwsgi_serv.pid.

顺便说一句,我的 /etc/init.d/uwsgi 中的 uwsgi 初始化文件中有这段代码。 因此,当我运行 /etc/init.d/uwsgi start 时,它会执行 ini 配置文件,而当我执行 /etc/init.d/uwsgi stop 时,它会停止 uwsgi 进程 ID。

问题是,当我启动 uWsgi 服务时,它会正常运行并记录每个 http 请求、任何调试打印等,但是当我关闭运行 Vps 的 putty 时,它会杀死所有 uWsgi 进程并退出站点不被显示。

我不知道我是否只需要触摸 pid 文件,或者我需要做什么让 uWsgi 进程执行并且我可以关闭 putty。

提前致谢。

【问题讨论】:

    标签: python uwsgi


    【解决方案1】:

    如果您在命令行中设置参数,请将标志-d file.log 添加到您的命令中(-d 代表守护进程):

    uwsgi --ini /home/myonlinesite/uwsgi.ini --pidfile /var/run/uwsgi_serv.pid -d file.log
    

    如果您在配置文件中设置参数,请在配置中添加以下行:

    daemonize = /absolute/path/to/file.log
    

    在这两种情况下,uWsgi 都将在后台运行并将所有内容记录在 file.log 中。鉴于这些选项,没有必要使用 nohup 等。

    【讨论】:

    • 这应该是公认的答案。我遵循了这个解决方案,它完美无缺
    【解决方案2】:

    使用nohup启动uWsgi进程应该可以解决你注销时进程停止的问题。

    A tutorial

    【讨论】:

    • 这里也可以使用终端多路复用器,如 tmux 或 screen。
    • 更好的选择是在 /etc/init/app.conf 中使用 runlevels 创建一个 conf 文件并将其用作 sudo initctl 开始 |重启 |停止应用程序 或使用 chkconfig 运行级别 和所有操作在 /etc/init.d/app 中创建服务。
    【解决方案3】:

    一定要加

    守护进程=日志文件

    到你的配置

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多