我已经配置了我的 uwsgi.ini 文件,并且它与 nohup 一起工作正常。如何在启动时自动启动 uwsgi?

Posted

技术标签:

【中文标题】我已经配置了我的 uwsgi.ini 文件,并且它与 nohup 一起工作正常。如何在启动时自动启动 uwsgi?【英文标题】:I have configured my uwsgi.ini file and its working fine with nohup. How can auto start uwsgi on boot? 【发布时间】:2021-09-25 19:14:59 【问题描述】:

这是我的 uesgi.conf 代码

description "uWSGI"
start on runlevel [2345]
stop on runlevel [06]
respawn

env UWSGI=/usr/local/bin/uwsgi
env LOGTO=/var/log/uwsgi.log

exec $UWSGI --master --emperor /home/ubuntu/socialtalks/config --die-on-term --uid socialtalks --gid www-data --logto $LOGTO

这里是ini文件配置。

uwsgi.ini

    [uwsgi]
# variables
#projectname = thesocialtalks
#base = /home/ubuntu/thesocialtalks

# configuration
#master = true
env = /home/ubuntu/socialtalks
#pythonpath = %(base)
#chdir = %(base)
env = DJANGO_SETTINGS_MODULE=%(projectname).settings.production
#module = thesocialtalks.wsgi:application
#socket = /tmp/%(projectname).sock

# mysite_uwsgi.ini file
[uwsgi]
projectname = socialtalks
pcre = true
base = /home/ubuntu/socialtalks
# Django-related settings
# the base directory (full path)
#chdir           = /home/ubuntu/socialtalks
chdir = %(base)
# Django's wsgi file
#module          = socialtalks.wsgi
module           = %(projectname).wsgi
# the virtualenv (full path)
#home            = /home/admin5/test/thesocialtalks_final/thesocialtalks
plugin = python37
# process-related settings
# master
master          = true
enable-threads = true

# maximum number of worker processes
processes       = 10
# the socket (use the full path to be safe
#socket          = /home/ubuntu/socialtalks/mysite.sock
socket = /tmp/%(projectname).sock
# ... with appropriate permissions - may be needed
chmod-socket = 666
uid = www-data
gid = www-data

# clear environment on exit
vacuum          = true

我正在使用命令运行脚本

nohup uwsgi --ini config/uwsgi.ini &

如何让我的 uwsgi 在系统启动后自动启动?

【问题讨论】:

【参考方案1】:

您绝对可以安装允许您运行任何程序并不断检查其状态以确保程序正在运行的管理程序。

[program:test]
autostart = true
stopsignal=QUIT
user=root
command=uwsgi --master --workers  5 --disable-logging --socket 127.0.0.1:8888
--module web --callable app
priority=1
redirect_stderr=true
stdout_logfile = /data/log

要设置主管,您可以查看以下文档:https://www.programmersought.com/article/97941378800/ 并在启动时启动主管,您可以键入以下命令:

# Make sure Supervisor comes up after a reboot.
sudo systemctl enable supervisor

# Bring Supervisor up right now.
sudo systemctl start supervisor

要了解更多信息,您可以转到下一个主题:https://unix.stackexchange.com/questions/281774/ubuntu-server-16-04-cannot-get-supervisor-to-start-automatically。

我不是 UWSGI 方面的专家,但我似乎有很多使用这种组合使用 Django 和 UWSGI 的存储库。

【讨论】:

还有其他选择吗?我不能在这个过程中使用 uwsgi 吗? 是的,还有像 gnicorn 这样的其他选项可以起到同样的作用。当然你也可以使用uwsgi 我已经尝试配置主管,但我没有显示错误。 -- 没有找到 python 应用程序,检查你的启动日志是否有错误 ---。当我手动运行 uwsgi 脚本时,它工作正常。

以上是关于我已经配置了我的 uwsgi.ini 文件,并且它与 nohup 一起工作正常。如何在启动时自动启动 uwsgi?的主要内容,如果未能解决你的问题,请参考以下文章

nginx+uwsgi02---django部署

django+vue前后端分离项目部署

0011 创建uwsgi配置文件

Centos7部署Django项目

怎么用uwsgi 运行uwsgi.ini

uwsgi + nginx 配置