Не работает команда sleep

Содержание
  1. Команда SLEEP — задать период ожидания.
  2. Команда сна Linux (приостановка сценария Bash)
  3. Как использовать команду sleep
  4. Примеры сценариев Bash
  5. Выводы
  6. CMD/BAT: sleep штатными средствами cmd
  7. Сообщения 32
  8. 1 Тема от MegaScrew 2012-08-03 14:11:26 (изменено: MegaScrew, 2012-08-03 14:34:50)
  9. Тема: CMD/BAT: sleep штатными средствами cmd
  10. 2 Ответ от alexii 2012-08-03 15:12:06
  11. Re: CMD/BAT: sleep штатными средствами cmd
  12. 3 Ответ от MegaScrew 2012-08-03 15:34:04
  13. Re: CMD/BAT: sleep штатными средствами cmd
  14. 4 Ответ от alexii 2012-08-03 17:35:16
  15. Re: CMD/BAT: sleep штатными средствами cmd
  16. 5 Ответ от smaharbA 2012-08-03 19:38:28
  17. Re: CMD/BAT: sleep штатными средствами cmd
  18. 6 Ответ от smaharbA 2012-08-03 19:39:23
  19. Re: CMD/BAT: sleep штатными средствами cmd
  20. 7 Ответ от Smitis 2012-08-04 13:21:54
  21. Re: CMD/BAT: sleep штатными средствами cmd
  22. 8 Ответ от Rumata 2012-08-04 13:38:52
  23. Re: CMD/BAT: sleep штатными средствами cmd
  24. 9 Ответ от alexii 2012-08-05 12:07:42
  25. Re: CMD/BAT: sleep штатными средствами cmd
  26. 10 Ответ от MegaScrew 2012-08-06 09:56:23
  27. Re: CMD/BAT: sleep штатными средствами cmd
  28. 11 Ответ от smaharbA 2012-08-06 11:08:49
  29. Re: CMD/BAT: sleep штатными средствами cmd
  30. 12 Ответ от MegaScrew 2012-08-06 11:34:05
  31. Re: CMD/BAT: sleep штатными средствами cmd
  32. 13 Ответ от greg zakharov 2012-08-06 17:13:15 (изменено: greg zakharov, 2012-08-06 17:14:09)
  33. Re: CMD/BAT: sleep штатными средствами cmd
  34. 14 Ответ от smaharbA 2012-08-06 18:04:00 (изменено: smaharbA, 2012-08-06 18:04:30)
  35. Re: CMD/BAT: sleep штатными средствами cmd
  36. 15 Ответ от Serge Yolkin 2012-08-07 11:51:26
  37. Re: CMD/BAT: sleep штатными средствами cmd
  38. 16 Ответ от MegaScrew 2012-08-07 12:21:23
  39. Re: CMD/BAT: sleep штатными средствами cmd
  40. 17 Ответ от Serge Yolkin 2012-08-07 18:45:55
  41. Re: CMD/BAT: sleep штатными средствами cmd
  42. 18 Ответ от smaharbA 2012-08-07 20:12:21
  43. Re: CMD/BAT: sleep штатными средствами cmd
  44. 19 Ответ от greg zakharov 2012-08-07 21:00:15
  45. Re: CMD/BAT: sleep штатными средствами cmd
  46. 20 Ответ от smaharbA 2012-08-07 21:57:20
  47. Re: CMD/BAT: sleep штатными средствами cmd
  48. 21 Ответ от alexii 2012-08-08 01:50:31
  49. Re: CMD/BAT: sleep штатными средствами cmd
  50. 22 Ответ от MegaScrew 2012-08-08 10:26:09 (изменено: MegaScrew, 2012-08-08 10:47:25)
  51. Re: CMD/BAT: sleep штатными средствами cmd
  52. Windows: Sleep(0.5)
  53. Первые замеры

Команда SLEEP — задать период ожидания.

Команда SLEEP входит в состав дополнительного пакета Resource Kit и используется в командных файлах для организации режима ожидания фиксированного интервала времени.

Формат командной строки:

sleep -m миллисекунды

SLEEP /? — отобразить краткую справку по использованию команды

sleep 10 установить режим ожидания 10 секунд.

sleep –m 2500 — установить интервал ожидания 2500 миллисекунд (2.5 секунды).

Для прерывания команды sleep можно использовать комбинации клавиш CTRL+C или CTRL+Break.

В качестве альтернативы команды sleep используется команда ping для петлевого интерфейса с указанием количества эхо-запросов, соответствующего длительности задержки в секундах. Поскольку эхо-запрос для петлевого интерфейса выполняется практически мгновенно, а интервал между запросами равен 1 секунде, такой способ вполне приемлем, и не требует установки Resource Kit или копирования утилиты sleep.exe для выполнения задержки на требуемый интервал времени.

Примеры выполнения задержек с использованием ping.exe :

ping –n 1 localhost > nul — задержка на 1 секунду. Перенаправление вывода на фиктивное устройство nul используется для подавления вывода утилиты ping.exe

ping –n 1 127.0.0.1 > nul — то же, но с указанием IP-адреса петлевого интерфейса.

В операционных системах Windows Vista и старше, для организации задержек при выполнении командных файлов можно использовать команду TIMEOUT

Источник

Команда сна Linux (приостановка сценария Bash)

sleep — это утилита командной строки, которая позволяет приостанавливать вызывающий процесс на определенное время. Другими словами, команда sleep приостанавливает выполнение следующей команды на заданное количество секунд.

Команда sleep полезна при использовании в сценарии оболочки bash, например, при повторной попытке неудачной операции или внутри цикла.

Читайте также:  Настрой фильтра открытой сети

В этом руководстве мы покажем вам, как использовать команду sleep в Linux.

Как использовать команду sleep

Синтаксис команды sleep следующий:

NUMBER может быть положительным целым числом или числом с плавающей запятой.

SUFFIX может быть одним из следующих:

  • s — секунды (по умолчанию)
  • m — минуты
  • h — часы
  • d — дни

Если суффикс не указан, по умолчанию используются секунды.

Когда даны два или более аргумента, общее количество времени эквивалентно сумме их значений.

Вот несколько простых примеров, демонстрирующих, как использовать команду sleep :

Сон на 0,5 секунды:

Сон 2 минуты 30 секунд:

Примеры сценариев Bash

В этом разделе мы рассмотрим несколько основных сценариев оболочки, чтобы увидеть, как используется команда sleep .

Когда вы запустите сценарий, он напечатает текущее время в формате HH:MM:SS . Затем команда sleep приостанавливает скрипт на 5 секунд. По истечении указанного периода времени последняя строка сценария выводит текущее время.

Результат будет выглядеть примерно так:

Давайте посмотрим на более сложный пример:

Скрипт каждые 5 секунд проверяет, находится ли хост в сети или нет. Когда хост переходит в онлайн, скрипт уведомит вас и остановится.

Как работает скрипт:

  • В первой строке мы создаем бесконечный while цикл .
  • Затем мы используем команду ping чтобы определить, доступен ли хост с IP-адресом ip_address или нет.
  • Если хост доступен, сценарий выдаст эхо «Хост в сети» и завершит цикл.
  • Если хост недоступен, команда sleep приостанавливает скрипт на 5 секунд, а затем цикл начинается с начала.

Выводы

Команда sleep — одна из самых простых команд Linux. Он используется для приостановки выполнения следующей команды на заданное время.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

CMD/BAT: sleep штатными средствами cmd

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщения 32

1 Тема от MegaScrew 2012-08-03 14:11:26 (изменено: MegaScrew, 2012-08-03 14:34:50)

  • MegaScrew
  • Участник
  • Неактивен
  • Рейтинг : [ 0 | 0 ]

Тема: CMD/BAT: sleep штатными средствами cmd

задержка от 1 до 60 секунд

2 Ответ от alexii 2012-08-03 15:12:06

  • alexii
  • Разработчик
  • Неактивен

Re: CMD/BAT: sleep штатными средствами cmd

3 Ответ от MegaScrew 2012-08-03 15:34:04

  • MegaScrew
  • Участник
  • Неактивен
  • Рейтинг : [ 0 | 0 ]

Re: CMD/BAT: sleep штатными средствами cmd

Согласен, можно, но не всем этот способ подходит.

4 Ответ от alexii 2012-08-03 17:35:16

  • alexii
  • Разработчик
  • Неактивен

Re: CMD/BAT: sleep штатными средствами cmd

5 Ответ от smaharbA 2012-08-03 19:38:28

  • smaharbA
  • Разработчик
  • Неактивен
  • Рейтинг : [ 0 | 0 ]

Re: CMD/BAT: sleep штатными средствами cmd

не всегда есть ип

6 Ответ от smaharbA 2012-08-03 19:39:23

  • smaharbA
  • Разработчик
  • Неактивен
  • Рейтинг : [ 0 | 0 ]

Re: CMD/BAT: sleep штатными средствами cmd

+ а в сабже крайне ужасный метод, на другом форуме посоветовал бы автору убить себя )

7 Ответ от Smitis 2012-08-04 13:21:54

  • Smitis
  • Разработчик
  • Неактивен
  • Рейтинг : [ 0 | 0 ]

Re: CMD/BAT: sleep штатными средствами cmd

Я так же согласен, что делать пауза при помощи пинга — ужасный метод. Самое плохое, что в большинстве случаев он работает. Но иногда такую паузу может выдать, что и близко к нужной не лежит.

8 Ответ от Rumata 2012-08-04 13:38:52

  • Rumata
  • Разработчик
  • Неактивен
  • Рейтинг : [ 33 | 0 ]

    Re: CMD/BAT: sleep штатными средствами cmd

    Можно делать задержки с помощью JScript по «технологии» bat+jscript: два в одном

    9 Ответ от alexii 2012-08-05 12:07:42

    • alexii
    • Разработчик
    • Неактивен

    Re: CMD/BAT: sleep штатными средствами cmd

    Но иногда такую паузу может выдать, что и близко к нужной не лежит.

    10 Ответ от MegaScrew 2012-08-06 09:56:23

    • MegaScrew
    • Участник
    • Неактивен
    • Рейтинг : [ 0 | 0 ]

    Re: CMD/BAT: sleep штатными средствами cmd

    Но иногда такую паузу может выдать, что и близко к нужной не лежит.

    пример, на слабом PC выполняющим роль сервака с обычной сетевухой, загруженного разными задачами.
    Наблюдал случаи когда инфа от пинга поступает спустя 10 — 15 секунд

    11 Ответ от smaharbA 2012-08-06 11:08:49

    • smaharbA
    • Разработчик
    • Неактивен
    • Рейтинг : [ 0 | 0 ]

    Re: CMD/BAT: sleep штатными средствами cmd

    от пинга чего ? и зачем инфа ?

    12 Ответ от MegaScrew 2012-08-06 11:34:05

    • MegaScrew
    • Участник
    • Неактивен
    • Рейтинг : [ 0 | 0 ]

    Re: CMD/BAT: sleep штатными средствами cmd

    у меня есть старый ноут целерон 1200 озу 384 метра на котором стоит winxp pro sp3
    при пинге 127.0.0.1 первая строчка появиться через 10 — 15 секунд остальные каждые 2 — 3 секунды (сидел замерял время) именно по этой причине стал искать другие варианты sleep.
    Другой вариант нашел и выложил тут, кому надо те возьмут.

    13 Ответ от greg zakharov 2012-08-06 17:13:15 (изменено: greg zakharov, 2012-08-06 17:14:09)

    • greg zakharov
    • Разработчик
    • Неактивен
    • Рейтинг : [ 5 | 0 ]

      Re: CMD/BAT: sleep штатными средствами cmd

      Я так же согласен, что делать пауза при помощи пинга — ужасный метод.

      Так в чем же дело, используйте sleep.exe из набора Windows Server 2003 Resource Kit, забросив его в системную папку. Хотя если речь о стандартных средствах, то соглашусь с господином Rumata.

      14 Ответ от smaharbA 2012-08-06 18:04:00 (изменено: smaharbA, 2012-08-06 18:04:30)

      • smaharbA
      • Разработчик
      • Неактивен
      • Рейтинг : [ 0 | 0 ]

      Re: CMD/BAT: sleep штатными средствами cmd

      15 Ответ от Serge Yolkin 2012-08-07 11:51:26

      • Serge Yolkin
      • Разработчик
      • Неактивен
      • Рейтинг : [ 1 | 0 ]

        Re: CMD/BAT: sleep штатными средствами cmd

        MegaScrew
        +40% к загрузке процессора (AMD A4-3310MX 2100 MHz, Win7Pro SP1) ?
        И это для «старого ноута» или «слабого PC, выполняющего роль сервака» ??

        16 Ответ от MegaScrew 2012-08-07 12:21:23

        • MegaScrew
        • Участник
        • Неактивен
        • Рейтинг : [ 0 | 0 ]

        Re: CMD/BAT: sleep штатными средствами cmd

        Serge Yolkin, предложите альтернативу без ping-а и sleep.exe из Resource Kit.

        ИМХО:
        Всегда в инструментах специалиста есть молоточек, молоток и кувалда и каждый специалист выбирает сам что ему использовать.

        Если есть предложения по оптимизации и упрощению кода давайте обсудим. Все остальное вода.

        17 Ответ от Serge Yolkin 2012-08-07 18:45:55

        • Serge Yolkin
        • Разработчик
        • Неактивен
        • Рейтинг : [ 1 | 0 ]

          Re: CMD/BAT: sleep штатными средствами cmd

          18 Ответ от smaharbA 2012-08-07 20:12:21

          • smaharbA
          • Разработчик
          • Неактивен
          • Рейтинг : [ 0 | 0 ]

          Re: CMD/BAT: sleep штатными средствами cmd

          в авторском коде преимущество с другими — нет старта внешнего приложения, но есть но — цикл не передает управление системе и сам жрет

          19 Ответ от greg zakharov 2012-08-07 21:00:15

          • greg zakharov
          • Разработчик
          • Неактивен
          • Рейтинг : [ 5 | 0 ]

            Re: CMD/BAT: sleep штатными средствами cmd

            Господа! а что вы именно разумеете под штатными средствами? Учитывая, что .NET Framework ныне стал необходимостью для большинства пользователей, можно использовать его возможности.

            Может, подход несколько порочный, но у него есть один плюс — нет назгрузки на ЦП.

            20 Ответ от smaharbA 2012-08-07 21:57:20

            • smaharbA
            • Разработчик
            • Неактивен
            • Рейтинг : [ 0 | 0 ]

            Re: CMD/BAT: sleep штатными средствами cmd

            так можно и дебагом не создавая файла

            21 Ответ от alexii 2012-08-08 01:50:31

            • alexii
            • Разработчик
            • Неактивен

            Re: CMD/BAT: sleep штатными средствами cmd

            в авторском коде … есть но — цикл не передает управление системе и сам жрет

            Вот из-за этого он мне и не нравится — где же тут сам Sleep, так сказать?!

            22 Ответ от MegaScrew 2012-08-08 10:26:09 (изменено: MegaScrew, 2012-08-08 10:47:25)

            • MegaScrew
            • Участник
            • Неактивен
            • Рейтинг : [ 0 | 0 ]

            Re: CMD/BAT: sleep штатными средствами cmd

            так можно и дебагом не создавая файла

            что вы имеете в виду? разверните свою мысль в код пожалуйста. я жадный до знаний

            В споре рождается истина ))
            Предлагаю альтернативу которая не жрет ресурсы CPU

            PS:
            У меня win7 Pro без ресурс кита и все работает. Проверьте кто может на других версиях OS windows.
            PSS:
            Посмотрел по хелпам MS на их сайте, вроде как timeout появился в составе cmd с Windows Server 2003
            В windows XP SP3 его нет, проверил.

            Источник

            Windows: Sleep(0.5)

            Как, наверняка, многие знают, в WinAPI’шную функцию Sleep передаётся число миллисекунд, на сколько мы хотим уснуть. Поэтому минимум, что мы можем запросить — это уснуть на 1 миллисекунду. Но что если мы хотим спать ещё меньше? Для интересующихся, как это сделать в картинках, добро пожаловать, под кат.

            Сперва напомню, что виндоус (как любая не система реального времени) не гарантирует, что поток (некоторые называют его нить, thread) будет спать именно запрошенное время. Начиная с Висты логика ОС простая. Есть некий квант времени, выделяемый потоку на выполнение (да, да, те самые 20 мс, про которые все слышали во времена 2000/XP и до сих пор слышат про это на серверных осях). И виндоус перепланирует потоки (останавливает одни потоки, запускает другие) только по истечению этого кванта. Т.е. если квант в ОС стоит в 20 мс (по умолчанию в XP было именно такое значение, например), то даже если мы запросили Sleep(1) то в худшем случае управление нам вернётся через те же самые 20 мс. Для управления этим квантом временем есть мультимедийные функции, в частности timeBeginPeriod/timeEndPeriod.

            Во вторых, сделаю краткое отступление, зачем может потребоваться такая точность. Майкрософт говорит, что такая точность нужна только мультимедийным приложениям. Например, делаете вы новый WinAMP с блекджетом, и здесь очень важно, чтобы мы новый кусок аудио-данных отправляли в систему вовремя. У меня нужда была в другой области. Был у нас декомпрессор H264 потока. И был он на ffmpeg’е. И обладал он синхронным интерфейсом (Frame* decompressor.Decompress(Frame* compressedFrame)). И всё было хорошо, пока не прикрутили декомпрессию на интеловских чипах в процессорах. В силу уже не помню каких причин работать с ним пришлось не через родное интеловское Media SDK, а через DXVA2 интерфейс. А оно асинхронное. Так что пришлось работать так:

            • Копируем данные в видеопамять
            • Делаем Sleep, чтобы кадр успел расжаться
            • Опрашиваем, завершилась ли декомпрессия, и если да, то забираем расжатый кадр из видеопамяти

            Проблема оказалась во втором пункте. Если верить GPUView, то кадры успевали расжиматься за 50-200 микросекунд. Если поставить Sleep(1) то на core i5 можно расжать максимум 1000*4*(ядра) = 4000 кадров в секунду. Если считать обычный fps равным 25, то это выходит всего 40 * 4 = 160 видеопотоков одновременно декомпрессировать. А цель стояла вытянуть 200. Собственно было 2 варианта: либо переделывать всё на асинхронную работу с аппаратным декомпрессором, либо уменьшать время Sleep’а.

            Первые замеры

            Чтобы грубо оценить текущий квант времени выполнения потока, напишем простую программу:

            Сразу, хочу предупредить, что если у вас например MSVS 2012, то std::chrono::high_resolution_clock вы ничего не намеряете. Да и вообще, вспоминаем, что самый верный способ измерить длительность чего либо — это Performance Counter’ы. Перепишем немного наш код, чтобы быть уверенными, что меряем времена мы правильно. Для начала напишем классец-хелпер. Я тесты сейчас делал на MSVS2015, там реализация high_resolution_clock уже правильная, через performance counter’ы. Делаю этот шаг, вдруг кто захочет повторить тесты на более старом компиляторе

            Источник

Оцените статью