| 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=', которая сообщает имя процесса. Теперь появилась новая проблема: При запуске разных скриптов имя процесса может быть разным. Чтобы разные скрипты не работали с репозиторием одновременно, надо как-то учитывать их имена. Исправил. Работает. Для этого в конфиге теперь придётся добавлять имена новых скриптов. |