如何重新启动gunicorn hup,我不知道masterpid或PID文件的位置

时间:2014-11-13 06:49:07

标签: django gunicorn

我想重新启动使用gunicorn运行的Django服务器。

我知道如何在我的系统中使用gunicorn。但现在我需要重新启动一个我没有设置的远程服务器。

我不知道masterpid重新启动服务器如何获取masterPID。

通常我HUPsudo kill -s HUP masterpid枪手。{/ p>

我尝试了ps aux|grep gunicorn

我在任何地方都找不到gunicorn.pid文件。

如何获得masterpid

5 个答案:

答案 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,请立即检查。.