如何在uWSGI多应用环境中重启单个应用?

2 投票
1 回答
2133 浏览
提问于 2025-04-18 10:10

我有一些用Python写的应用程序,这些应用在Ubuntu 12.04.4 LTS系统上通过uWSGI进行管理。

这些应用的配置文件放在 /etc/uwsgi/apps-available/ 目录下,比如 app001.xml、app002.xml 等等,所有的应用配置文件都是从 /etc/uwsgi/apps-enabled 目录中链接过来的。

当我只对某一个特定的应用做了修改时,我会重启uWSGI进程。

sudo service uwsgi restart

但是,当我运行上面的命令来重启uWSGI进程时,实际上会重启所有的应用。

我该如何只重启一个单独的uWSGI实例呢?我想保持其他实例在运行,以避免因为重启进程而带来的干扰。

1 个回答

2

如果你在使用Emperor这个工具,只需要简单地调整一下配置文件就可以了。否则,你需要为每个实例设置一个pid文件(这样可以用UNIX信号来管理它),或者设置一个主fifo(详细信息可以查看这个链接:http://uwsgi-docs.readthedocs.org/en/latest/MasterFIFO.html),或者使用--touch-reload选项(具体可以参考这个链接:http://uwsgi-docs.readthedocs.org/en/latest/Options.html#touch-reload)。

撰写回答