You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu系统中Python如何按进程名杀死整个多进程程序

原因说明

pkill -9 test.py不生效的核心原因是:pkill默认只匹配进程的命令名(comm字段),而Python脚本运行时,进程的实际命令名是python/python3,test.py只是传给解释器的启动参数,不在默认匹配范围内。
对于多进程程序,不需要逐个查询PID手动查杀,以下方法可以一次性终止整个程序的所有关联进程:

可用操作方法
  • 全命令匹配查杀(操作最简单)
    给pkill加-f参数后,会匹配进程启动时的完整命令字符串,就能精准命中运行test.py的Python进程:

    # 先执行预览命令,列出所有将被匹配的进程,避免误杀
    pgrep -af test.py
    # 确认列表内都是需要终止的进程后,执行强制终止
    pkill -9 -f test.py
    

    注意:如果当前有其他进程的命令行包含test.py字段(比如正用编辑器打开test.py编辑、其他路径下有同名test.py在运行),会被一并终止,一定要先跑pgrep确认匹配范围。

  • 按进程组查杀(精准度最高,无错杀风险)
    多进程程序启动后,所有派生的子进程默认和主进程属于同一个进程组,只要向进程组发送终止信号,就能一次性清理所有关联进程,不会影响其他同名程序:

    # 第一步:查询test.py的主进程PID,例如返回结果为12345
    pgrep -f test.py | head -n 1
    # 第二步:终止整个进程组,注意PID前面必须加负号
    kill -9 -12345
    
  • 前台启动程序的退出方式
    如果是在当前终端前台启动的test.py,不需要输入命令:

    • 优先按Ctrl+C发送终止信号,给程序留出释放端口、清理临时文件的时间,优雅退出
    • 若程序完全卡住无响应,再按Ctrl+\发送退出信号强制终止
      非必要不要上来就用-9(SIGKILL)信号,这个信号会直接杀死进程,不给程序留任何处理善后的机会,容易出现端口占用、临时文件残留的问题。

内容的提问来源于stack exchange,提问作者marlon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 15:39:17