Насколько я понимаю, в bash есть команда usleep. Это «занятый» или «блокирующий» сон? Или это уступит время другим процессам?
Это, вероятно, действительно не относится к ошибке сервера (хотя я не уверен, к какому сайту он будет принадлежать), но все равно вот ответ:
Оболочка bash не имеет встроенной usleep
команда (и не имеет встроенной sleep
команда). sleep
это стандарт программа в системах Unix и доступен независимо от того, какую оболочку вы используете. usleep
Похоже, это программа, написанная людьми из RedHat, и она может присутствовать только в дистрибутивах, связанных с RedHat (RHEL и производные; Fedora). Похоже, что в Debian его нет.
В любом слючае, sleep
и usleep
использовать стандарт sleep()
и usleep()
системные вызовы, которые приостанавливают выполнение программы на указанное время [0] (делая их «блокирующими») и не используют процессорное время во время сна (заставляя их не "занятый").
[0] Фактически не гарантируется, что количество времени точно будет запрошенным из-за того, как работает планировщик ядра. Обычная гарантия состоит в том, что он будет спать по крайней мере требуемое время. Это не проблема для целых чисел sleep()
длительности, потому что разница будет намного меньше секунды, но usleep()
длительности (и дробные sleep()
длительности) может оказаться неточным.
Здесь нет usleep
команда в bash. usleep: command not found
на bash 4.3.11 и ничего подобного, упомянутого в журнал изменений ...