Skip to content

[shared] 抽取 _pid_is_running 通用进程存活检测 helper #16

@beachspainc

Description

@beachspainc

现象

_pid_is_running 在跨目录重复定义 7 次(Windows/Posix 分支实现几乎一致),属于典型可复用的通用能力。

重复位置:

  • apps/tool/workspace/daemon/ensure.py:286
  • apps/shared/workspace/singleton.py:68
  • apps/client/sdk/workspace/mcp/server/app.py:139
  • apps/client/sdk/workspace/daemon/discovery.py:64
  • apps/server/worker/toolbox.py:70
  • apps/server/worker/serena_mcp.py:22
  • apps/server/worker/llm_monitor.py:21

建议

  • 抽取到 src/cobnet/shared/process.py 或现有共享底层模块,提供统一签名:
    • 输入 PID,返回是否存活
    • 保留 isinstance/bool 过滤与 cross-platform 分支
  • 统一错误处理策略(失败返回 False
  • 下游模块改为统一导入

风险收益

  • 降低重复维护成本,避免未来分支策略分歧(Windows 分支/异常处理)
  • 新增行为一致性,有利于服务/daemon 一致诊断。

与已存在 issue 的关系

当前仓库 open issue 中未看到该问题(#8-15 均为 backplane helper 系列)。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions