一种有趣的死锁

死锁步骤

1. 使用sudo把syslogd给pause掉,就是: sudo kill -19 syslogd-pid

2. 使用logger写一些日志,自然是写不进去的,一般写10条就够了

3. 在使用sudo让syslogd继续运行: sudo kill -18 syslogd-pid

 

现象:

发现第三步怎么也执行不了,不知道卡死在什么地方了; 使用strace跟踪一下吧: strace sudo kill -18 syslog-pid; 发现没有权限,自然还要对strace使用sudo执行,于是: sudo  strace sudo kill -18 syslog-pid ; 什么也没看见,继续卡死。

问题原因:

因为syslogd的buffer已经写满了,sudo是要写日志的,阻塞在了写日志的地方了; 于是就不好玩了,关机吧!

但是关机也是要写日志的呀,关机也关不了了,只能断电了

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据