我正在使用代码覆盖率工具。受监视的程序可能会生成也应涵盖的子流程。流程树可能很复杂,并且涉及未覆盖的流程。使用代码覆盖率不应强迫开发人员修改所覆盖的工具(他可能无法控制所有工具)。我有一个当前的解决方案来处理生成的进程:它修补环境并尝试拦截生成的进程以进行覆盖。这足够好了,但是可以解决更深层的问题:我需要查看流程子树。
我正在寻找一种监视/监视进程子树的可靠解决方案:检测子树中子进程(包括守护程序/分离的进程)的创建和破坏。
我希望构建类似于文件监视程序的东西,但用于进程。我的目标平台是Linux,Mac和Windows。如果需要,我可以使用系统调用编写本机代码。涵盖的代码在Javascript(Node.js)中,但是在Node中没有这样的过程监视器。该解决方案可以使用系统特定的API。
这对我来说是一个新的问题领域,我对该领域可用的工具不是很熟悉。首先,我想知道在现有系统API的情况下,是否有可能提供这种监视程序。如果可能的话,是否有可能粗略地指向相关的API?
我的主系统使用Linux,我知道进程产生是通过系统调用实现的,我可以研究/proc
来获取有关正在运行的进程的信息。对于Linux,我目前的两个解决方案是:
/proc
上的文件监视程序,但是我不确定它的可靠性如何,特别是如果进程是短暂的(这也排除了轮询)。在此先感谢您的帮助