Russian Qt Forum

Компиляторы и платформы => Linux => Тема начата: alex12 от Июнь 22, 2009, 15:42



Название: Cron и вложенный запуск заданий
Отправлено: alex12 от Июнь 22, 2009, 15:42
У меня система, в которой довольно часто запускается моя программа (скрипт из нескольких консольных программ)
при помощи cron. Скрипт иногда может отрабатывать довольно продолжительное время.

Вполне возможна ситуация, когда следующий запуск cron делает раньше,
чем программа завершит свое выполнение. Возникает вложенный запуск.

Есть ли элегантный способ защиты от такой ситуации? Может есть стандартное решение?


Название: Re: Cron и вложенный запуск заданий
Отправлено: MoPDoBoPoT от Июнь 22, 2009, 15:56
Вот вам в помощь:
http://www.qtsoftware.com/products/appdev/add-on-products/catalog/3/Utilities/qtsingleapplication


Название: Re: Cron и вложенный запуск заданий
Отправлено: alex12 от Июнь 22, 2009, 21:04
Спасибо, к сожалению не пойдет. Я неудачно поставил задачу: у меня не просто программа, а небольшой скрипт из нескольких консольных команд.


Название: Re: Cron и вложенный запуск заданий
Отправлено: denka от Июнь 22, 2009, 21:32
Почему бы в самом скрипте не анализировать выполняется ли на данный момент твой скрип запущенный прошлый раз?


Название: Re: Cron и вложенный запуск заданий
Отправлено: lit-uriy от Июнь 22, 2009, 22:09
den'ka, согласен.
Мало того можно посмотреть в качестве примера скрипты загрузки системы.
Там запуск идёт поочерёдно, пока один демон не запустится зависимые от него ждут.

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

Примерно так.


Название: Re: Cron и вложенный запуск заданий
Отправлено: Kagami от Июнь 22, 2009, 23:30
Можно делать lock-файл.

Код
Bash
#!/bin/sh
if [ -f /tmp/.my-lock ]
 then
   exit 0
fi
touch /tmp/.my-lock
 
# Выполняем скрипт
# ...
 
rm /tmp/.my-lock
 


Название: Re: Cron и вложенный запуск заданий
Отправлено: Alex Custov от Июнь 23, 2009, 00:19
man lockfile, или ручной lock, как выше показали. и неплохо бы trap отрабатывать.


Название: Re: Cron и вложенный запуск заданий
Отправлено: alex12 от Июнь 23, 2009, 08:15
Спасибо за советы. Буду разбираться.