我正在设置一个服务器来托管一个Django应用程序,其中包括:
- 由Ubuntu的uWSGI init脚本启动的
uWSGI
应用程序 supervisord
启动的celeryd
- 从Git获取代码
- 迁移数据库
- 告诉
uWSGI
重新启动,以便它可以使用新代码。 - 告诉
celeryd
重新启动,以便它也可以使用新代码。
uWSGI
有这个配置特性:touch-reload
gracefully reload the uWSGI stack when a file/directory changes.
我的脚本是由非特权用户运行的,所有应用程序进程都在此用户下运行。
要重新启动 uWSGI
,我只需执行 touch ~/.restart_uwsgi
。
是否有办法在不授予非特权用户sudo权限的情况下,以同样的方式为在supervisord
下运行的celeryd
执行supervisorctl restart celeryd
?
/etc/
配置设置。这样做可以使更新/刷新变得更加容易。 - patroqueeet