在工作中,会发现gunicorn启动的web服务,无论怎么使用kill -9 进程号都是无法杀死gunicorn,经过我一番百度和谷歌,发现想要删除gunicorn进程其实很简单。
第一步获取Gunicorn进程树:
通过执行如下命令,可以获取Gunicorn进程树:
pstree -ap|grep gunicorn
得到的结果如下
Python
| | |-grep,14519 --color=auto gunicorn
| `-gunicorn,28097 /usr/local/bin/gunicorn query_site.wsgi:application -c ...
| |-gunicorn,14226 /usr/local/bin/gunicorn query_site.wsgi:application -c ...
| | |-{gunicorn},14229
| | |-{gunicorn},14230
| | |-{gunicorn},14231
| | |-{gunicorn},14232
| | |-{gunicorn},14233
| | |-{gunicorn},14234
| | |-{gunicorn},14236
| | |-{gunicorn},14237
| | |-{gunicorn},14238
| | |-{gunicorn},14239
| | |-{gunicorn},14240
| | |-{gunicorn},14241
| | |-{gunicorn},14242
| | |-{gunicorn},14243
| | `-{gunicorn},14244
2. 重启Gunicorn任务
Python
kill -HUP 14226
3. 退出Gunicorn任务
Python
kill -9 28097
执行上述命令后,再次执行“pstree -ap|grep gunicorn”,我们很容易发现,除了主进程,其他的Gunicorn进程都已经销毁,并新建了进程(进程ID发生了变化)。