how to start a python script only once

News123 news1234 at free.fr
Sat Mar 13 13:45:53 EST 2010


Hi,

I'd like to make sure, that a certain python program will only be run
once per host. (linux/windows)


so if the program is started a second time it should just terminate and
let the other one run.

This does not have to be the fastest solution, but it should be reliable.


I have a few ideas, but wonder, which one is the most common


My ideas so far:

pid file and file locking
--------------------------
create a file like program.pid  with the pid of the running program an
use file locking to avoid race connditions.

However I currently don't know how to do file locking under windows
and I don't know how to do file lockng with python and linux.
I'll start googling.

sqlite and locking
--------------------
quite some time ago I used a mysql table and locking as an inter-host mutex.

Perhaps sqlite would be good enough for an inter process mutex for
processes on the same host, but I don't know it well enough.


interprocess mutex
--------------------
well I even don't know whether something like this exists on linux / windows


Thanks in advanced for any tips



N



More information about the Python-list mailing list