Как сделать так что бы у меня запускался только 1 экземпляр приложения..
То есть если приложение уже запущенно , то что бы 2й экземпляр приложения не запускался..
Старт скрипта
Если файл .pid существует:
пробуем:
открыть .pid на запись
иначе:
выход из скрипта
иначе:
открыть .pid на запись
.....
основной код
.....
закрыть .pid
удалить .pid
конец скрипта.
..Старт скрипта Если файл .pid существует: пробуем: открыть .pid на запись иначе: выход из скрипта иначе: открыть .pid на запись ..... основной код ..... закрыть .pid удалить .pid конец скрипта.
OzModЭто потому что ты проверяешь файл на существование, а нужно на занятость. Тоесть не просто создать-удалить, а создать и держать открытым на протяжении всей работы скрипта. В случае некоректного завершения, файл остается но разблокируеться поскольку процес котороый держи его уже не сществует.
есть 1 проблема при не корректном завершении программы файл не удаляется (то есть в нашем случае файл .pid) - то есть программа следующий раз запускается..
приходится в ручную удалять этот .pid файл, после запускать программу!
with open('.lock', 'bw') as lockFile: #тут идет основной текст скрипта....
Старт скрипта
Если файл .pid существует:
открываем и читаем из него PID
смотрим в процессах, если есть процесс с таким PID:
завершаем скрипт
иначе:
пишем свой PID в файл
иначе:
создаем файл, пишем свой PID в файл
закрываем .pid
основной код
.....