how to start a python script only once

Glazner yoavglazner at gmail.com
Sun Mar 14 15:30:43 EDT 2010


On Mar 13, 8:45 pm, News123 <news1... at free.fr> wrote:
> 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

I'll just open a port with a TCP socket, it is cross-platform and free
from race conditions.



More information about the Python-list mailing list