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

时间:2010-06-13 13:29:15

标签: python

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

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

2 个答案:

答案 0 :(得分:2)

套接字更容易在Windows和任何其他操作系统之间移植,因此我推荐它使用命名管道(这就是为什么例如IDLE使用套接字而不是命名管道 - 后者需要Windows上依赖于平台的代码,例如通过ctypes [[或第三方win32allcython& c]],虽然套接字正常工作)。

答案 1 :(得分:0)

这是一个想法......

  1. 将状态置于其他地方,即 可以进行查询/查询。
  2. 当流程开始时,发布 '跑'状态。
  3. 在此处检查脚本以查看进程是否正在运行。
  4. 我也会用一个单独的地方 后控制值。例如设置一个 价值到'控制集'并且有 该过程寻找这些价值观 每当它到达决策点 在其运行时行为。