Django 如何重新启动gunicorn hup,我不知道主PID或PID文件的位置
我想重新启动使用gunicorn运行的Django服务器 我知道如何在我的系统中使用gunicorn。但是现在我需要重新启动一个不是我设置的远程服务器 我不知道Django 如何重新启动gunicorn hup,我不知道主PID或PID文件的位置,django,gunicorn,Django,Gunicorn,我想重新启动使用gunicorn运行的Django服务器 我知道如何在我的系统中使用gunicorn。但是现在我需要重新启动一个不是我设置的远程服务器 我不知道masterpid要重新启动服务器,如何获取masterpid 通常IHUPgunicorn和sudo kill-s HUP masterpid 我试过使用ps aux|grep gunicorn 我在任何地方都没有找到gunicorn.pid文件 如何获取主进程的pid?您可以使用选项'-p'运行gunicorn,以便从pid文件中获取
masterpid
要重新启动服务器,如何获取masterpid
通常IHUP
gunicorn和sudo kill-s HUP masterpid
我试过使用ps aux|grep gunicorn
我在任何地方都没有找到gunicorn.pid
文件
如何获取主进程的pid?您可以使用选项'-p'运行gunicorn,以便从pid文件中获取主进程的pid。 例如:
gunicorn -p app.pid your_app.wsgi.app
您可以通过以下方式获得主控制器的pid:
cat app.pid
这也有助于重新启动gunicorn:
ps aux |grep gunicorn |grep yourapp | awk '{ print $2 }' |xargs kill -HUP
第1步:
转到/etc/systemd/system/gunicorn.service并打开文件
添加波纹管行
PIDFile=/run/gunicorn/gunicorn.pid
--pid /run/gunicorn/gunicorn.pid
d /run/gunicorn 0755 django django -
例如:
[Service]
PIDFile=/run/gunicorn/gunicorn.pid
WorkingDirectory=/home/django/django_project
ExecStart=/usr/bin/gunicorn --pid /run/gunicorn/gunicorn.pid --name=django_project.....
User=django
Group=django
第二步:
转到/etc/tmpfiles.d/并创建新文件gunicorn.conf(如果不存在)
添加波纹管行
PIDFile=/run/gunicorn/gunicorn.pid
--pid /run/gunicorn/gunicorn.pid
d /run/gunicorn 0755 django django -
其中django=用户名和组名
第三步:
重新启动服务器或/etc/init.d/gunicorn restart
重新启动gunicorn以生效
您的pid文件位置是/run/gunicorn/gunicorn.pid立即检查。下面的一行代码可以完美完成任务:
kill -HUP `ps -C gunicorn fch -o pid | head -n 1`
解释
pc-C gunicorn
仅列出使用gunicorn
命令的进程,即工作进程和主进程。工人是master的子女,这可以通过使用ps-C gunicorn fc-o ppid、pid、cmd
看到。我们只需要主机的pid,因此h
标志用于删除第一行pid文本。注意,f
标志确保master
打印在工人上方
正确的步骤是仅向主机发送HUP
信号。这样,gunicorn就可以正常地重新启动,只重新创建工作进程,而不是主进程