Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2010, 13:17   #1
Небесный
Зелень
Форумчанин
 
Аватар для Небесный
 
Регистрация: 03.02.2007
Сообщений: 302
По умолчанию flock при запуске bash-скриптов

Есть два скрипта, запуск проводиться по крону, но есть очень большая вероятность, что скрипты могут и запуститься одновременно, а это крайне нежелательно.
Вычитал, что есть способ это предовратить - flock-функция.
Но, не могу разобраться, что и как делать, может кто-то сможет мне объяснить, что и как куда тулить.
Спасибо за заранее оказаную помощь.
Небесный вне форума Ответить с цитированием
Старый 20.09.2010, 13:34   #2
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Ваши скрипты что то читают | пишут в файлы ?
Или функцию flock планировали применять к файлу скрипта ?
ssdm вне форума Ответить с цитированием
Старый 20.09.2010, 13:37   #3
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Вот решение http://www.franzone.com/2008/03/18/h...unning-part-2/
ssdm вне форума Ответить с цитированием
Старый 20.09.2010, 13:45   #4
Небесный
Зелень
Форумчанин
 
Аватар для Небесный
 
Регистрация: 03.02.2007
Сообщений: 302
По умолчанию

Ну, например такой вот случай.

Сейчас по крону запустился скрипт1 - этот скрипт еще не закончился отрабатываться, а уже запускается по крону скрипт2.

Нужно чтобы по завершению скрипта1 - скрипт2 продолжил свою работу
Небесный вне форума Ответить с цитированием
Старый 20.09.2010, 13:48   #5
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Ну в каждом скрипте организовать бесконечный цикл(в цикле можно слип на пару сек организовать), если файл другого скрипта заблочен. Как только файл разблокировался - выход из цикла и выполнение скрипта.
ssdm вне форума Ответить с цитированием
Старый 20.09.2010, 13:52   #6
Небесный
Зелень
Форумчанин
 
Аватар для Небесный
 
Регистрация: 03.02.2007
Сообщений: 302
По умолчанию

Хорошо такой момент:
1. как заблочить скрипт1.
2. как узнать в скрипте2, что скрипт1 - заблочен.
3. ну и понятно по завершению работы скрипта - разблочить его.

ЗЫ: запутался я донемогу.
Небесный вне форума Ответить с цитированием
Старый 20.09.2010, 14:10   #7
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Эту ссылку http://www.franzone.com/2008/03/18/h...unning-part-2/ прочитал ?
Как я понял для того чтобы заблочить файл надо выполнить:
Код:
if(!flock -x path_to_another_script){ \\если файл заблочен другим скриптом 
   Бесконечный цикл с проверкой  в котором- 
      if(flock -x path_to_another_script){
           flock -x path_to_running_script;
           do_something();
           в конце разблочим два скрипта + выход из скрипта
      }
}else{
       flock -x path_to_running_script;
       do_something();
       в конце разблочим  скрипт
}
PS. Тут представлен только алгоритм, на bashe не писал, так что скопировать - вставить не пройдет

Последний раз редактировалось ssdm; 20.09.2010 в 14:55.
ssdm вне форума Ответить с цитированием
Старый 20.09.2010, 15:18   #8
Небесный
Зелень
Форумчанин
 
Аватар для Небесный
 
Регистрация: 03.02.2007
Сообщений: 302
По умолчанию

Цитата:
Сообщение от ssdm Посмотреть сообщение
Эту ссылку http://www.franzone.com/2008/03/18/h...unning-part-2/ прочитал ?
Как я понял для того чтобы заблочить файл надо выполнить:
Код:
if(!flock -x path_to_another_script){ \\если файл заблочен другим скриптом 
   Бесконечный цикл с проверкой  в котором- 
      if(flock -x path_to_another_script){
           flock -x path_to_running_script;
           do_something();
           в конце разблочим два скрипта + выход из скрипта
      }
}else{
       flock -x path_to_running_script;
       do_something();
       в конце разблочим  скрипт
}
PS. Тут представлен только алгоритм, на bashe не писал, так что скопировать - вставить не пройдет
А, мне скопировать и вставить - не нужно, я спрашивал саму реализацию, за меня делать все не нужно - это уж слишком.
Огромное спасибо за помощь.
Небесный вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при запуске СиСи+ Общие вопросы C/C++ 4 17.06.2010 08:24
Ошибка при запуске wowan.mix Помощь студентам 1 16.05.2010 13:06
Проверка при запуске Nice42ru Помощь студентам 10 02.01.2010 18:52
функция flock($filedescriptor, type) CyberOrcX PHP 1 29.10.2009 18:00
Ошибка при запуске Windows XP Умелец Свободное общение 7 16.05.2007 12:27