我想重新启动使用gunicorn运行的Django服务器。
我知道如何在我的系统中使用gunicorn。但现在我需要重新启动一个我没有设置的远程服务器。
我不知道masterpid
重新启动服务器如何获取masterPID。
通常我HUP
与sudo kill -s HUP masterpid
枪手。{/ p>
我尝试了ps aux|grep gunicorn
我在任何地方都找不到gunicorn.pid
文件。
如何获得masterpid
?
答案 0 :(得分:7)
您可以使用选项'-p'运行gunicorn,这样您就可以从pid文件中获取主进程的pid。 例如:
gunicorn -p app.pid your_app.wsgi.app
你可以通过以下方式获得主人的pid:
cat app.pid
答案 1 :(得分:6)
pstree -ap|grep gunicorn
这将为您提供树结构,因为您可以找到主(父),在gunicorn
旁边您可以找到PID(数字)
答案 2 :(得分:2)
下面的一根衬板可以完美地完成工作:
kill -HUP `ps -C gunicorn fch -o pid | head -n 1`
pc -C gunicorn
仅列出使用gunicorn
命令的进程,即工作进程和 master 进程。工人是 master 的孩子,可以使用ps -C gunicorn fc -o ppid,pid,cmd
看到。我们只需要 master 的pid,因此h
标志用于删除第一行,即PID文本。请注意,f
标志可确保将master
打印在工作人员上方。
正确的过程是仅将HUP
信号发送给主控。以这种方式gunicorn
可以正常重启,仅重新创建工作线程,而不是重新创建工作线程。
答案 3 :(得分:0)
这也应该重新启动Gunicorn:
ps aux |grep gunicorn |grep yourapp | awk '{ print $2 }' |xargs kill -HUP
答案 4 :(得分:0)
步骤1: 转到/etc/systemd/system/gunicorn.service并打开文件 添加波纹管
PIDFile=/run/gunicorn/gunicorn.pid
--pid /run/gunicorn/gunicorn.pid
示例:
[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
步骤2: 转到/etc/tmpfiles.d/并创建新文件gunicorn.conf(如果不存在)
添加贝娄线
d /run/gunicorn 0755 django django -
其中django =用户名和组名
第3步:
重新启动服务器或/etc/init.d/gunicorn restart
重新启动gunicorn生效
您的pid文件位置是/run/gunicorn/gunicorn.pid,请立即检查。.