首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >监测故障过程

监测故障过程
EN

Stack Overflow用户
提问于 2017-01-17 18:01:40
回答 1查看 57关注 0票数 0

我正在开发一个简单的模糊工具,该工具涉及生成一些文件类型的有效实例,并监视正在测试的程序是否失败。该工具的一个关键组件是进程监视模块:该模块应该提供一些函数,给定表示程序路径的字符串和参数(例如,corrupt.pyrandom_file.wav),指示调用currupt.py random_file.wav是否会触发某些错误。

这类函数的类型签名应该类似于字节-> int,其中int有一些相关的含义(例如,0 ->健康退出)。

此外,我理解暂停问题使得无法判断停止是否是意外行为,所以我可以在任意等待时间绘制界限。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-17 19:08:41

您可以从Unix“高级流程和重定向管理”函数开始,例如,create_process prog args new_stdin new_stdout new_stderr是一个通用函数,它将创建运行程序的进程,并允许您重定向通道。所创建的进程将异步运行,因此您可以使用waitpidWNOHANG标志查看它,或者阻止它直到结束(可能后者不适合您)。

可能,下面的接口应该满足您的需要:

代码语言:javascript
复制
 module Monitor : sig 

    val start : string -> t
    val terminate : t -> unit

    val on_finish : t -> (int -> unit) -> unit

    ... 
 end

或者你可以把它简化成

代码语言:javascript
复制
  val monitor : string -> (int -> 'a) -> 'a

如果您不想管理监视器实例。

或者,您可以查看Lwt 高级过程管理库。它可能会帮你省下几次按键。还有来自Janestreet的另一种异步unix库,您可以尝试。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41703970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档