我正在寻找使用 Win32 API 构建任务监视器/管理器。它将使用命令行参数启动(最好作为 Windows 服务),指定它应该启动多少个新进程的实例。
task_man.exe 40
将启动 40 个进程实例
task.exe
现在,每当 task.exe 退出(正确与否)时,我都必须启动一个新的来替换它。
我粗略的想法是这样的:
从 task_man 启动任务,获取它们的 PID,然后有一个循环来检查 PID 是否都是活动进程。对于每个无效的 PID,启动一个新进程并用新的 PID 替换旧的 PID。
有没有更好的设计我可以使用,或者更好的工作流程?有这样做的标准方法吗?我不想重新发明轮子……另外,我应该研究哪些 API?
我也在寻找一种以后容易改变的设计——即如果我跑步
task_man.exe 30
之后,新的 task_man 不应该开始运行,而是应该更改前一个实例中的任务数。(我知道它会开始运行,我说的应该修改原来的然后退出)
我不是在寻找代码(因为我不是在寻找完整的实现,不是我介意查看示例),而是我可以使用哪些 API,或者对我提出的整体设计的建议。