分享我的生活
分享能使人快乐

宝塔面板 webhooks 优雅的重启 gunicorn 进程

网上能搜索到的 优雅的重启gunicorn 进程基本都是相同的一篇文章

其核心代码如下

# 查找进程

pstree -ap|grep gunicorn

利用pid重启进程

kill -HUP 14226

利用pid杀死进程

kill -9 28097

我们webhooks调用的代码需要连续的完成查找并且杀死进程,然后再重启这个服务。

经过一番搜索和测试,下面的代码可用

# 服务器又多个gunicorn服务的时候,只针对rxx0.com进行杀死进程,下面的rxx0.com替换成你的服务的关键字

pstree | grep rxx0.com | grep -v grep | awk ‘NR==1{system(“kill -QUIT “$2)}’

# 比如

# pstree | grep gunicorn | grep -v grep | awk ‘NR==1{system(“kill -QUIT “$2)}’

杀死gunicorn进程之后就需要重启服务,如果是宝塔面板的话,python 项目管理内的项目启动命令,在 /etc/init.d/ 文件夹下,对应项目名_pymanager 文件,打开这个文件,把最后一行复制下来即可。

# 这段代码需要自己修改成自己的虚拟环境里的gunicorn、配置和服务

/www/wwwroot/rxx0.com/rxx0_venv/bin/gunicorn -c /www/wwwroot/rxx0.com/gunicorn.conf rxx0:app

这两段代码组合起来就可以在webhooks调用的时候先执行杀死gunicorn,再重启gunicorn服务的任务啦

 

如果没有先杀死gunicorn,直接重启gunicorn是无效的,而且不提示错误。

这个不是错误,没有gunicorn进程的时候直接启动gunicorn也会显示这个警告,但是服务会运行。

有gunicorn进程的时候,也是提示这个警告,但是服务不会重启。

需要先杀死gunicorn进程,然后启动服务。

 

 

 

 

 

赞(0)

我想说 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #-49

    博客很棒 欢迎回访我哦

    自媒体平台2年前 (2021-11-30)回复