Checking for duplicate instances of a script...
Joakim Hove
hove at bccs.no
Wed Jan 21 07:42:53 EST 2004
"Guillaume Dargaud" <NOusenetSPAM at gdargaud.net> writes:
> Hello, python beginner here,
> How can I make sure that a given script is never run more than once at the
> same time in a system ?
This can probably be done in *many* different ways, maybe there is
even an agreed upon on best solution. This is a small suggestion
based on fcntl.flock() (Unix only I am afraid):
#!/usr/bin/python
import struct, fcntl
import sys
lockfile = "/tmp/.lock"
## Open a file-descriptor for the lock file.
lockH = open(lockfile,"w")
## Try to aquire an exclusive lock on the lock file.
try:
fcntl.flock(lockH , fcntl.LOCK_EX | fcntl.LOCK_NB)
except IOError,e:
sys.exit("Lockfile %s already locked - an instance is probably already running" % lockfile)
##
## Your code ...
##
## Release the lock again
fcntl.flock(lockH, fcntl.LOCK_UN)
--
/--------------------------------------------------------------------\
/ Joakim Hove / hove at bccs.no / (55 5) 84076 | \
| Unifob AS, Avdeling for Beregningsvitenskap (BCCS) | Stabburveien 18 |
| CMU | 5231 Paradis |
\ Thormøhlensgt.55, 5020 Bergen. | 55 91 28 18 /
\--------------------------------------------------------------------/
More information about the Python-list
mailing list