您所在的位置:系统应用 > Web > Linux的random总是装死

Linux的random总是装死

2006-03-14 23:13 sina 字号:T | T
一键收藏,随时查看,分享好友!

本文描述了Linux系统中由/dev/random函数引起的死机现象该如何来解决。

AD:

应该有不少人碰过Apache 启动时卡在digest module 过不去,导致PHP 不能使用,或是碰过某些程序卡在某个地方很久没动作。这时候大家可能要去检查一下/dev/random 这个设备档案。可以用cat /dev/random 来看它的内容,如果你发现他一直没显示任何内容﹝可能是乱码数字之类的﹞,那就是它出问题了。
据我从digest module 的source code 里所知,这模组呼叫了一个乱数产生的函数,此函数会呼叫/dev/random。所以当/dev/random卡住显示不出内容时,很自然的任何read() 它的程式会停在那等它回应。
我了解Linux kernel 的source code 之后发现,/dev/random 会使用key/mouse/disk 的interrupt 当做乱数种子的计算来源,好处是会有更大的安全性,但问题是当我们没在使用 key/mouse/disk 或是他们的 interrupt 讯号量不足以产生乱数种子时,/dev/random 就会永远是空白没东西。
这问题有个暂时的解决办法,就是将 /dev/random 砍掉,先用link的方式使用 /dev/urandom 取代/dev/random。
要完全解决此问题,可至SourceForge 找到gkernel这项目。
下载rng-tool 回来编译安装。
然后于开机的 Scripts 中加入:


rngd -b -o /dev/random -r /dev/urandom
此Deamon 将会在没足够interrupt 讯号时使用urandom 的乱数当random 的乱数种子。

(责任编辑:城尘




分享到:

系统应用

频道导航

  1. Linux系统中的日志管理
  2. 浏览器中使用“Linux 操作系统”

热点专题

更多>>

读书

Ajax经典案例开发大全
针对Ajax技术的日益流行,本书对Ajax技术的典型应用进行了归纳总结,基本上覆盖了Ajax技术应用的典型场景。书中共有45个实例,分

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 51CTO学院