Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

fanotify FAN_MARK_MOUNT 模式,监控根路径,gdb fanotify监控程序时,ctrl+c ctrl+z 引起系统卡死,有人遇到过么? 是否有解决办法?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
4.4k views
Welcome To Ask or Share your Answers For Others

1 Answer

偶然看见这个问题,刚好我也遇到过。其实问题的原因与FAN_MARK_MOUNT没有任何关系,这只表示你监控了某个mount目录全部文件而已。
真正的原因有两个:
1、你一定是使用了FAN_CLASS_CONTENT而不是FAN_CLASS_NOTIF,使用FAN_CLASS_CONTENT模式你得确保OPEN_PERM和ACCESS_PERM事件有回复,否则应用程序必然会阻塞在open或read函数。
2、gdb如何处理ctrl+c和ctrl+z?在gdb调试时信号会先被gdb接收然后才发送给进程,有的信号还会被拦截不让进程收到,ctrl+c就是其一。不论是ctrl+c和ctrl+z都会使gdb停止进程的运行。
好了,真正的原因已经浮出水面,你在gdb调试时让进程停止运行了,那么发生PERM事件时自然无法处理事件了,那么系统卡死必然会出现,除非进程恢复运行或退出。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...