如何从子进程向所有进程发送信号
How to send a signal to all process from child process?
我正在尝试使用fork()调用做一个套接字编程示例,我的问题是:当子进程完成工作时,我想杀死所有其他进程。我想如果我给别人一个信号…这是可能的还是有人告诉我一个方法?
在父进程的开始(在它派生其子进程之前),调用setpgid(0,0)
。这将使进程组ID与父进程的PID相同。这个PGID将被每个子进程继承,任何进程都可以通过调用kill(signal, -getpgid(0))
向组中的所有进程发送信号。
杀死进程组的常用方法是使用killpg()系统调用。从手册页:
"killpg()向进程组pgrp发送信号。"
除了killpg()之外,可能还需要get/setpgid来正确设置组
你可以这样做:
killpg( 0, SIGNALTYPE);
相关文章:
- 父进程和子进程之间的 POSIX 信号量
- 进程过早退出,并发出 SIGSEGV 信号
- 在 Bash 脚本中处理来自子进程的信号
- 使用信号检测子进程何时终止的最佳方法是什么?
- 如何使用Windows API直接将进程"assign"到信号量?
- 子进程 c++ 的 Windows 控制台信号处理
- 如何防止在C++中使用 popen() 打开的进程接收 SIGINT 信号?
- 让 Gnu 屏幕将 SIGTERM 信号传递给子进程,允许它们干净地关闭
- 在父母获得杀死信号和退出后,用system()产生的儿童进程继续运行
- 在POSIX中,我可以保存信号以供调用条件等待的其他线程使用吗.(这些线程来自同一进程)
- 启动-停止守护进程启动的C程序无法捕获信号
- 在WINDOWS中从子进程向父进程发送信号
- 如何从一个进程向多个其他进程发送信号
- 使用SIGSEGV或SIGABRT信号转储核心并终止进程
- 用户空间和内核空间进程中的信号处理程序集
- C++ System V 信号量:多个服务器进程,一个客户端进程
- 互斥锁和信号量之间的区别 - 进程内和进程间
- 进程等待另一进程终止时的信号处理
- 如何在父进程中捕获Term动作信号
- 是否可以在Qt3.0中发出跨进程信号或发布触摸/鼠标点击事件