выполните тест ping для изменения DNS

Ваша проблема состоит в том, что Вы спите для фиксированного количества времени после того, как Вы запускаете свою программу, не принимая к соображению количество времени, которое протекло с прошлого раза Вы спали.

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

Из-за компромиссов диспетчеризации процессов Вы, как гарантируют, не проснетесь прямо на такте системных часов, но необходимо быть довольно близкими (в некоторых мс, разгруженный, или в нескольких сотнях мс при загрузке). И Вы не будете накапливать ошибку со временем, потому что каждый раз Вы ресинхронизируете на каждом цикле сна и удаляете любую накопленную ошибку.

Если необходимо поразить такт системных часов точно, то то, что Вы ищете, является операционной системой реального времени, которые разработаны точно с этой целью.

0
08.04.2013, 18:16
1 ответ

Необходимо заменить следующую строку:

if (($loss_mid < $threshold)); then

Этим:

if [ "$loss_mid" -lt "$threshold" ]; then
1
28.01.2020, 02:53
  • 1
    теперь это дает эту ошибку:./dns-ping.sh: строка 15: [:: целое выражение ожидается –  Hojat Taheri 08.04.2013, 20:50
  • 2
    Эта модификация работы для меня. $threshold должна быть числовая переменная. справедливое замечание –   08.04.2013, 21:51

Теги

Похожие вопросы