Выполнить две операции с различной частотой в Bash - PullRequest
0 голосов
/ 23 февраля 2012

Мне нужен скрипт на bash для запуска двух приложений с разной частотой. Я не настолько опытен в bash и мне нужна помощь

У меня есть две программы, m1 и m2, которые должны выполняться с разной скоростью (стресс-тест). Например, m1 запускается каждые 10 секунд, а m2 - каждые 30 секунд. Но должно быть возможно изменить частоту

Ответы [ 3 ]

5 голосов
/ 23 февраля 2012

Чтобы упростить пару других ответов:

$ while sleep 10; do echo 1; done &
$ while sleep 30; do echo 2; done &

Обратите внимание, что если для выполнения команд "m1" и "m2" требуется время, вы не будете запускать их каждые 10/30 секунд. Сон - это задержка между окончанием одного цикла и началом следующего.

Так что, если вы действительно хотите расписание , чтобы они запускались каждые 10 или 30 секунд, используйте cron. Cron запускается раз в минуту, поэтому вам нужно иметь несколько заданий cron со сном:

* * * * * m1
* * * * * sleep 10; m1
* * * * * sleep 20; m1
* * * * * sleep 30; m1
* * * * * sleep 40; m1
* * * * * sleep 50; m1
* * * * * m2
* * * * * sleep 30; m2

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

2 голосов
/ 23 февраля 2012
$ while true; do sleep 10; echo 1; done &
$ while true; do sleep 30; echo 2; done &
1
1
2
1
1
1
2
...
1 голос
/ 23 февраля 2012

Я думаю, что вы ищете команду сна в сочетании с циклом while true.

while true; do m1;sleep 10;done
while true; do m2; sleep 30;done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...