Bug 6297

Summary: Wine-tests: возможные проблемы при запуске двух экземпляров скрипта сразу
Product: [Свободные проекты (Open source projects)] WINE-tests Reporter: Виталий Перов <vitperov>
Component: ОбщееAssignee: Виталий Перов <vitperov>
Status: CLOSED FIXED QA Contact:
Severity: minor    
Priority: P4 CC: baraka, lav
Version: не указана   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 6264    

Description Виталий Перов 2010-10-25 19:24:03 MSD
Сборка wine выполняется достаточно долго. Это может привести к тому, что первый скрипт ещё не закончил свою работу, а крон запускает уже второй.

Возможные проблемы:
1) git pull делается до проверки почты. У нас уже запущен первый экземпляр, который работает с репозиториями, а в это время запускается второй, который обновляет эти репозитории
2) Неразборчивые логи. В середине лога от первого экземпляра вдруг появляется лог второго экземпляра.

Хорошо бы запретить запуск второго экземпляра скрипта
Comment 1 Виталий Перов 2010-11-01 16:50:03 MSK
Стандартных решений нет.
Кроссплатформенность не получится.

Из существующих решений самым лучшим думаю будет создание временного файла (путь должен быть прописан в конфиге). При запуске программы надо проверять существование этого файла.

Возможно возникнут проблемы при неправильном завершении. В этом случае придётся удалять файл вручную
Comment 2 Виталий Перов 2010-11-01 17:41:17 MSK
> 
> Из существующих решений самым лучшим думаю будет создание временного
> файла (путь должен быть прописан в конфиге). При запуске программы надо
> проверять существование этого файла.
> 

Сделал.
Для проверки написал тестовый скрипт.
Как это работает на "живой" системе узнаем только при запуске через cron.
Сейчас при повторном запуске выводится сообщение "Already running".
Скорее всего cron пришлёт его по по почте в случае запуска второго экземпляра приложения.