Некоторая справочная информация. Я искал запуск script на сервере Red Hat для чтения некоторых данных из /dev/random и использования команды Perl unpack() для ее преобразования в шестнадцатеричную строку для использования позже ( бенчмаркинг операций с базами данных). Я запускал несколько "head -1" на /dev/random, и, похоже, он работал нормально, но, позвонив несколько раз, он просто зависал. Через несколько минут он, наконец, выведет небольшой блок текста, а затем закончит.
Я переключился на /dev/urandom (я действительно не хотел, его медленнее, и мне не нужно это качество случайности), и он работал нормально для первых двух или трех вызовов, а затем он тоже начал зависать. Мне было интересно, была ли это "голова", которая бомбила его, поэтому я попытался сделать простой ввод-вывод с помощью Perl, и он тоже висел. В качестве последнего усилия я использовал команду "dd", чтобы выгрузить некоторую информацию из нее непосредственно в файл, а не в терминал. Все, что я просил, это 1 мб данных, но до того, как я его убил, потребовалось 3 минуты, чтобы получить ~ 400 байт.
Я проверил списки процессов, CPU и память были в основном нетронутыми. Что конкретно может вызвать /dev/random, чтобы это сделать, и что я могу сделать, чтобы предотвратить/исправить его в будущем?
Изменить: Спасибо за помощь, ребята! Кажется, что у меня были случайные и урбанские проблемы. Теперь у меня есть script. Похоже, сегодня я узнал что-то новое.:)