我有两个进程A和B(应该是可伸缩的)。 A和B可以有子流程(也包括execl&#d; d)流程。 如果信号被删除到任何子进程,程序应该优雅地终止A和B的所有子进程,包括A和B本身。
这里面临的挑战是不应该有任何已经失效的流程,并且由于可能存在执行流程,地址空间将被替换。
我首先创建了一个子进程,并在父进程等待时将子进程的pid分配给了pgid。另外,我在这个子进程中创建了进程A和B,这样我就可以用pgrp终止所有进程。
但正如我所提到的,当我发布"杀死execld进程的pid"时,它创建了已停止的进程,所有其他进程都在运行。
另外,我的要求是我不能去多线程(至少是为了预期的工作)
请建议解决方案。