使用信号在C中进行Kiling进程

w2l*_*ame 2 c signals kill process

我的程序中的主要过程分配3个进程,并将进程ID称为pid1,pid2,pid3.Pid1和pid2进程处于无限循环中.我想要的是当pid3进程结束时,包括main终止的所有进程.截至目前,我正在使用:

wait(pid3);
kill(0, SIGKILL);
Run Code Online (Sandbox Code Playgroud)

正如我所说的那样完成所有这些,但它在终端上打印杀死.我不希望信号显示被杀死,事实上没什么,但优雅地退出程序.我怎样才能做到这一点?

R..*_*R.. 5

SIGTERM改为使用,并安装一个信号处理程序,exit(0)在接收时执行干净退出(例如)SIGTERM.

  • 实际上,因为您可能希望允许程序的调用者检测用户是否使用`SIGTERM`(`kill`命令的正常行为)将其杀死,所以最好使用单独的信号,如`SIGUSR1`,用于通知其他进程他们应该退出. (2认同)