2013-08-06 1 views
0

Есть ли идеальная реализация для выполнения определенной операции каждые 2 часа в сценариях оболочки? Поскольку я нацелен на эту операцию для телефона Android, я беспокоюсь о том, что время автономной работы и потребление процессора сценарий оболочки может возникнуть, если я создаю бесконечный цикл с busybox sleep 2hours и мою работу в цикле. Может ли кто-нибудь показать лучшую реализацию, которая может использовать минимальное время процессора?Выполнение определенной операции каждые 2 часа в сценарии оболочки

+3

Сон не создает много (почти нет) процессорного времени, поэтому вам не нужно беспокоиться об этом все время, когда он работает. Кроме того, bash просто ждет его (sleep), поэтому bash на самом деле не использует большую мощность процессора. – konsolebox

+0

Ohk спасибо, не могли бы вы рассказать мне номер за 2 часа? Является ли параметр для сна быть в секундах или миллисекундах? –

+1

Зависит от версии сна. busybox sleep 2h должен работать. – konsolebox

ответ

2

Сон не создает много (почти нет) процессорного времени, поэтому вам не нужно беспокоиться об этом все время, когда он работает. Кроме того, bash просто ждет его (sleep), поэтому bash на самом деле не использует большую мощность процессора.

Для выполнения сна в течение 2 часов используйте аргумент 2 часа. С busybox это buxybox sleep 2h. Если мы хотим, чтобы поместить его внутри цикла мы могли бы сделать это следующим образом:

while busybox sleep 2h; do 
    ... do some tasks or run checks 
done 

Или

while 
    ... do some tasks or run checks 
    busybox sleep 2h 
do 
    continue 
done 

Это предотвратило бы еще одну задачу от выполнения, если сон внезапно прерывается, как при выключении или при сигнал прерывания клавиатуры отправляется.

Вы могли бы рассмотреть возможность проверить этот пост, я сделал перед тем, как хорошо: http://www.linuxquestions.org/questions/programming-9/optimizing-bash-process-4175431381/#post4802416

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

+0

Ах! как я не знал. Большое спасибо! –

Смежные вопросы