代码之家  ›  专栏  ›  技术社区  ›  JacquesB

长时间运行过程的检测与交互

  •  0
  • JacquesB  · 技术社区  · 15 年前

    我想要一个脚本启动并与一个长时间运行的过程交互。在脚本可以重复执行之后,第一次执行脚本时会启动该进程,但会检测到该进程已在运行。脚本应该能够与流程交互。我希望它在Unix和Windows上工作。

    我不确定该怎么做。具体来说,我如何检测进程是否已经在运行并打开通向它的管道?我应该使用套接字(例如,在已知端口上注册服务器进程,然后检查它是否响应)还是应该使用“命名管道”?还是有更简单的方法?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Alex Martelli    15 年前

    套接字更容易在Windows和任何其他操作系统之间实现可移植性,因此我建议使用它而不是命名管道(这就是为什么空闲使用套接字而不是命名管道——后者需要依赖于平台的Windows代码,例如通过 ctypes 或第三方 win32all cython &当插座工作时)。

        2
  •  0
  •   Randy    15 年前

    好吧,这里有个主意……

    1. 把状态放在别的地方,那 可以进行轮询/查询。
    2. 当进程开始时,发布 “运行”状态。
    3. 在这里检查脚本以查看进程是否正在运行。
    4. 我也会用一个单独的地方 后控制值。例如设置一个 值设置为“control set”,并且 流程寻找这些值 无论何时到达决策点 在其运行时行为中。