如何终止后台nohup启动的Uvicorn进程并防止其重启
彻底终止自动重启的Uvicorn进程
出现kill进程后自动重启的情况,说明你的Uvicorn进程被某个父进程/进程管理器监控着,直接杀子进程会被重新拉起,得从根源处理:
先排查进程树,找到谁在管理Uvicorn:
执行命令:ps auxf | grep uvicorn这个命令会显示进程的层级关系,你能看到Uvicorn的父进程PID和名称(比如systemd、某个shell脚本、supervisor等)。
根据父进程类型处理:
- 如果是systemd服务管理:
先找对应的服务名:
找到后停止并禁用自动启动:systemctl list-units | grep -i uvicornsystemctl stop [服务名].service systemctl disable [服务名].service - 如果是shell脚本循环重启:
从进程树里找到对应的脚本进程PID,直接杀掉它:
之后再清理Uvicorn进程:kill -9 [脚本PID]pkill -f uvicorn - 如果是supervisor等进程管理器:
停止对应的进程:
要是想彻底禁用,编辑supervisor配置文件后重启supervisor服务。supervisorctl stop uvicorn
- 如果是systemd服务管理:
最后验证:
执行ps aux | grep uvicorn,确认没有相关进程残留即可。
内容的提问来源于stack exchange,提问作者Patrick Kwok
相关产品推荐
相关产品推荐

