Уведомления

Группа в Telegram: @pythonsu

#1 Июль 26, 2013 14:29:26

axe
От:
Зарегистрирован: 2008-08-07
Сообщения: 256
Репутация: +  0  -
Профиль   Отправить e-mail  

блокировка файла средствами ОС Linux с целью предотвращения параллельного запуска процессов

В скрипте использую такую защиту от паралелльного запуска нескольких экземпляров:

lockFileNm = '/var/lock/myscriptlockfilename'
lockFile = open( lockFileNm, 'w')
try:
    fcntl.lockf(lockFile, fcntl.LOCK_EX | fcntl.LOCK_NB)
except IOError:
    print 'another instance of %s is running' % (__file__)
    sys.exit(0)
(скрипт запускается по cron-у)

На диске кончилось свободное место и создалось множество процессов. Мне пока что негде провести эксперимент, чтобы узнать истину.
Делает ли fcntl.lockf какие-то пометки в файловой системе или это пометка в оперативной памяти?



Отредактировано axe (Июль 26, 2013 14:30:34)

Офлайн

#2 Июль 26, 2013 20:39:57

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

блокировка файла средствами ОС Linux с целью предотвращения параллельного запуска процессов

По идее должно в памяти, и при перезагрузке “скидываться”.

Офлайн

#3 Июль 26, 2013 20:42:16

axe
От:
Зарегистрирован: 2008-08-07
Сообщения: 256
Репутация: +  0  -
Профиль   Отправить e-mail  

блокировка файла средствами ОС Linux с целью предотвращения параллельного запуска процессов

Протестировал:
попробовал забить место на винте - пустой лок-файл создался и нормально залочился.
Т.е. отметка должна быть в оперативке.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version