<code id='zkd8'><strong id='zkd8'></strong></code>

      <dl id='zkd8'></dl>

      1. <ins id='zkd8'></ins>
      2. <span id='zkd8'></span>

        <fieldset id='zkd8'></fieldset>

        <i id='zkd8'><div id='zkd8'><ins id='zkd8'></ins></div></i>
        <i id='zkd8'></i>

      3. <tr id='zkd8'><strong id='zkd8'></strong><small id='zkd8'></small><button id='zkd8'></button><li id='zkd8'><noscript id='zkd8'><big id='zkd8'></big><dt id='zkd8'></dt></noscript></li></tr><ol id='zkd8'><table id='zkd8'><blockquote id='zkd8'><tbody id='zkd8'></tbody></blockquote></table></ol><u id='zkd8'></u><kbd id='zkd8'><kbd id='zkd8'></kbd></kbd>

        1. <acronym id='zkd8'><em id='zkd8'></em><td id='zkd8'><div id='zkd8'></div></td></acronym><address id='zkd8'><big id='zkd8'><big id='zkd8'></big><legend id='zkd8'></legend></big></address>

          Linux的random总是装死

          • 时间:
          • 浏览:8
          • 来源:124软件资讯网

            应该有不少人碰过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 的乱数种子