linux 进程信号监控

lieyingshengbao 2013-08-08 10:32:16
就是说:你是进程1,别人发给你个信号。。我是进程2,我想去截获发给你的信号
这样能实现吗?该用啥API??搜索了一些没找到啥有用资料
...全文
360 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 8 楼 zhao4zhong1 的回复:
参考Windows下的Hook技术?
参考http://www.linuxidc.com/Linux/2010-11/29776.htm不知道是不是你想要的答案
d294136138 2013-08-23
  • 打赏
  • 举报
回复
引用 9 楼 fetag 的回复:
没人去拦信号,而且也拦不住,这个得到内核里面去直接精确操纵信号队列才能实现。 通常的做法是去修改信号处理程序的代码,比如A进程注册了SIGUSR1发生了以后,调用fun()来处理;只要把fun()函数的执行逻辑改掉,就相当于废掉SIGUSR1信号了。
+1
独孤过儿 2013-08-22
  • 打赏
  • 举报
回复
没人去拦信号,而且也拦不住,这个得到内核里面去直接精确操纵信号队列才能实现。 通常的做法是去修改信号处理程序的代码,比如A进程注册了SIGUSR1发生了以后,调用fun()来处理;只要把fun()函数的执行逻辑改掉,就相当于废掉SIGUSR1信号了。
赵4老师 2013-08-22
  • 打赏
  • 举报
回复
参考Windows下的Hook技术?
lieyingshengbao 2013-08-22
  • 打赏
  • 举报
回复
没人知道吗??表示很失望啊、、 假设用命令“kill -SIGTRAP PID”发信号,如何截获呢? 搜索了下,ptrace好像不好使。该用啥方法呢??
lieyingshengbao 2013-08-08
  • 打赏
  • 举报
回复
引用 5 楼 sduxiaoxiang 的回复:
kill(sig, pid)
现在不是发信号的问题,是截获信号的问题呀、、我看那个了, pid = -1时候,会发给所有进程,但是现在问题是: 我在守护进程中截获发给其他进程的信号(按照PID截获),然后对进程进行操作。。例如杀死进程 例如:gdb调试进程1,我在守护进程中去截获进程1的SIGTRAP信号,然后终止进程1
sduxiaoxiang 2013-08-08
  • 打赏
  • 举报
回复
kill(sig, pid)
max_min_ 2013-08-08
  • 打赏
  • 举报
回复
引用 3 楼 lieyingshengbao 的回复:
[quote=引用 2 楼 max_min_ 的回复:] 要看发信号方是怎么给进程1发送信号的,
例如用gdb调试进程,发送信号SIGTRAP,而我的守护进程想去截获SIGTRAP信号。守护进程中应该怎么搞?[/quote] signal函数没有区分进程的,这个我感觉无法截获吧! 不晓得有没有大神知道
lieyingshengbao 2013-08-08
  • 打赏
  • 举报
回复
引用 2 楼 max_min_ 的回复:
要看发信号方是怎么给进程1发送信号的,
例如用gdb调试进程,发送信号SIGTRAP,而我的守护进程想去截获SIGTRAP信号。守护进程中应该怎么搞?
max_min_ 2013-08-08
  • 打赏
  • 举报
回复
要看发信号方是怎么给进程1发送信号的,
sduxiaoxiang 2013-08-08
  • 打赏
  • 举报
回复
http://zhidao.baidu.com/question/192295381.html

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧