avoid script running twice

Robin Becker robin at reportlab.com
Mon Jun 18 11:56:37 EDT 2007


I wish to prevent a python script from running twice; it's an hourly job, but 
can take too long.

My simplistic script looks like


.......
def main():
     fn = 'MARKER'
     if os.path.isfile(fn):
         log('%s: hourly job running already' % formatTime())
     else:
         f = open(fn,'w')
         f.write(str(os.getpid()))
         f.close()
         try:
	    work()
         finally:
             os.remove(fn)

if __name__=='__main__':
     main()

but it occurs to me that I might be killed with prejudice during the long 
running work(). Is there a smart way to avoid running simultaneously.
-- 
Robin Becker




More information about the Python-list mailing list