我正在设置一个服务器来托管一个 Django 应用程序,该应用程序具有:
uWSGI由 ubuntu 的 uWSGI 初始化脚本启动的应用程序celeryd开始于supervisord
所以我正在编写一个部署脚本,它将:
- 从 git 拉取代码
- 迁移数据库
- 告诉
uWSGI重新启动,因此它将获取新代码。 - 告诉
celeryd重新启动,因此它也会获取新代码。
uWSGI具有此配置功能:
touch-reload
gracefully reload the uWSGI stack when a file/directory changes.
所以我的脚本由运行所有应用程序进程的非特权用户运行。
要重新启动uWSGI我可以简单地touch ~/.restart_uwsgi。
有什么方法可以在不授予非特权用户 sudo 访问权限的情况celeryd下运行相同的操作,这样他就可以了?supervisordsupervisorctl restart celeryd