如何正确地停止枪炮

j7n*_*n7k 44 django django-manage.py gunicorn

我用Django命令'python manage.py run_gunicorn'开始使用gunicorn.我怎么能停止枪炮?

注意:我有一个带有结构的半自动服务器部署.因此,使用像python manage.py run_gunicornpid手动杀死进程这样的东西不是一种选择.

Voi*_*uca 69

要查看进程是ps ax|grep gunicorn和停止gunicorn_django是pkill gunicorn.

  • 正如我在我的问题中提到的,这不是一个选项(自动部署). (4认同)
  • @ PiyushS.Wanare做`kill -9 <pid number>` (2认同)
  • 真的,这个答案是高票吗?:o它将停止服务器上运行的所有gunicorn实例:/ (2认同)
  • 不会阻止我。 (2认同)

ari*_*rie 25

一种选择是Supervisor用来管理Gunicorn.

然后我再也看不出为什么你不能通过杀死这个过程Fabric.假设你让Gunicorn 编写一个pid文件,你可以轻松地在Fabric命令中读取该文件.

这样的事情应该有效:

run("kill `cat /path/to/your/file/gunicorn.pid`")
Run Code Online (Sandbox Code Playgroud)


小智 17

这是对我有用的命令:

pkill -f gunicorn
Run Code Online (Sandbox Code Playgroud)

它将杀死任何名为gunicorn的进程


Dav*_*vid 16

开始:

gunicorn --pid PID_FILE APP:app
Run Code Online (Sandbox Code Playgroud)

停止:

kill $(cat PID_FILE)
Run Code Online (Sandbox Code Playgroud)

--pid的标志需要gunicorn一个参数:将存储进程 ID 的文件。当服务停止时,该文件也会自动删除。

为了简单起见,我使用了PID_FILE类似的名称,但您应该使用类似/tmp/MY_APP_PID文件名的名称。

如果PID文件存在,则表示服务正在运行。如果不存在,则该服务未运行。要停止该服务,只需如上所述杀死它即可。

您可能还希望包含该--daemon标志以便将进程与当前 shell 分离。

  • 这是一个优雅的解决方案,可以保证我们不会意外终止任何gunicorn 进程。谢谢。 (2认同)

Tak*_*oft 15

pkill gunicorn停止所有 gunicorn 守护进程。因此,如果您使用不同的端口运行多个 gunicorn 实例,请尝试使用此 shell 脚本。

#!/bin/bash
Port=5000
pid=`ps ax | grep gunicorn | grep $Port | awk '{split($0,a," "); print a[1]}' | head -n 1`
if [ -z "$pid" ]; then
  echo "no gunicorn deamon on port $Port"
else
  kill $pid
  echo "killed gunicorn deamon on port $Port"
fi
Run Code Online (Sandbox Code Playgroud)

ps ax | grep gunicorn | grep $Port 显示具有特定端口的守护进程。


Mal*_*lgo 11

pkill gunicorn
Run Code Online (Sandbox Code Playgroud)

或者

pkill -P1 gunicorn
Run Code Online (Sandbox Code Playgroud)

应该杀死所有正在运行的 gunicorn 进程


小智 5

启动在gunicorn上运行的服务

sudo systemctl enable myproject

sudo systemctl start myproject
Run Code Online (Sandbox Code Playgroud)

或者

sudo systemctl restart myproject
Run Code Online (Sandbox Code Playgroud)

但是要停止gunicorn上运行的服务

sudo systemctl stop myproject
Run Code Online (Sandbox Code Playgroud)

要了解有关使用 Gunicorn 托管 Python 应用程序的更多信息,请参阅此处

  • 仅当您在“/etc/systemd/system/”中创建了“myproject.service”文件时,这才有效。有关如何创建 systemd 服务文件的信息,请参阅 https://freedesktop.org/software/systemd/man/systemd.service.html。 (2认同)