Найти - Пользователи
Полная версия: проверка копии программы
Начало » Python для новичков » проверка копии программы
1
MaratD
Здравствуйте, уважаемые разработчики.
Помогите пожалуйста. Написал программу. Чтобы не запускали больше одного сеанса этой программы, сделал проверку на возможность переименовать текстовый файл. Если переименовывается, то открываю этот файл и запускаю программу. Такое решение нашел в интернете. Оно работает, но не всегда. Иногда, например, когда компьютер еще загружается, пользователи могут запустить два сеанса. То есть не успевает отрабатывать, не знаю почему.
Есть более быстрое и надежное решение проверки запуска второго сеанса программы? Почитал про psutil. Это будет более правильным решением? Или есть другой зарекомендовавший себя способ? Пожалуйста поделитесь опытом.
Спасибо.
FishHook
MaratD
Или есть другой зарекомендовавший себя способ?

Конечно! Стандартная практика - применение Lock-файлов. В питоне есть для этого богатый набор инструментов, например этот
MaratD
Извиняюсь, может глупый вопрос. Технология Lock-файлов тоже работают с файлами? Если да, то суть одна. Соответственно возможна нестабильная отработка. Какая тогда разница между решением в моей программе и Lock-файлами?
FishHook
MaratD
Извиняюсь, может глупый вопрос. Технология Lock-файлов тоже работают с файлами? Если да, то суть одна. Соответственно возможна нестабильная отработка. Какая тогда разница между решением в моей программе и Lock-файлами?

Разница в том, что библиотеку писали люди наверняка опытнее вас, которые могли учесть нюансы, о которых вы не имеете представления
MaratD
Ссылку, которую вы дали. Там несколько примеров. Какой из них использовать? И для какой версии питона и операционки. Если питон 3.4 и Windows, подойдет?
Еще вопрос по Lock-файлам. Если программа при сбое закроется, lock файл останется?
FishHook
MaratD
Еще вопрос по Lock-файлам. Если программа при сбое закроется, lock файл останется?
Лок-файл, что логично, создается в /tmp, соответственно после перезагрузки ПК он стирается (вот вам один из вышеозначенных нюансов)
Там несколько примеров. Какой из них использовать?
Примеры, они на то и примеры, их пишут не для того, чтобы их не думая использовали, а для того, чтобы продемонстрировать один из вариантов применения. Там вообще дофига всего, читайте доку, изучайте, в конце то концов, это же вам надо, а не мне. Я не знаю как вам надо наладить вашу работу и вообще только ради вашего вопроса нагуглил этот пакет.
MaratD
Спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB