Summary: | Wine-tests: доработать блокировку от повторного запуска | ||
---|---|---|---|
Product: | [Свободные проекты (Open source projects)] WINE-tests | Reporter: | Виталий Перов <vitperov> |
Component: | Общее | Assignee: | Виталий Перов <vitperov> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | minor | ||
Priority: | P4 | CC: | amorozov, baraka, lav |
Version: | не указана | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 6264 | ||
Deadline: | 2011-09-01 |
Description
Виталий Перов
2011-08-09 18:49:37 MSK
Из выше перечисленных мне больше первый вариант нравится. Ещё можно на файл lock ставить блокировку. Тут ещё проблема с реализацией на питоне. Вариант со временем создания файла реализуется стандартными средствами питона при помощи функции os.stat(). Кроме того, эта функция является кроссплатформенной. А вот для того, чтобы узнать жив ли блокирующий процесс, стандартных средств нет. Можно запустить при помощи os.system() соответствующую комманду shell, а потом парсить её вывод. Начал реализацию. Вместо запуска 'ps a', и поиска требуемого pid, думаю лучше смотреть напрямую в /proc. Ещё нужно проверять имя программы. Может так получиться, что после загрузки компьютера процесс с таким pid будет существовать, но принадлежать совсем другой программе. Сделал блокировку через команду 'ps -p id -o comm=', которая сообщает имя процесса. Теперь появилась новая проблема: При запуске разных скриптов имя процесса может быть разным. Чтобы разные скрипты не работали с репозиторием одновременно, надо как-то учитывать их имена. Исправил. Работает. Для этого в конфиге теперь придётся добавлять имена новых скриптов. |