Cameron Laird wrote:
In article <[EMAIL PROTECTED]>,
Uberman  <[EMAIL PROTECTED]> wrote:
On Fri, Aug 29, 2008 at 6:51 AM, Heston James <[EMAIL PROTECTED]> wrote:
Good afternoon all.

I have an application/script which is launched by crontab on a regular
basis. I need an effective and accurate way to ensure that only one instance
of the script is running at any one time.
You could create a named pipe in /tmp with a unique (static) name and
permissions that disallow any kind of read/write access.  Then simply have
your script check for its existence when it starts.  If it exists, then
another instance of your script is running, and just terminate.  Make sure
your original instance removes the pipe when it exits.

I'll write an article on this subject this fall.  The
essentials are:
A.  There's no canonical answer; every apparent solution
    has problems;
B.  The suggestions offered you are certainly among the
    popular ones;
C.  My personal favorite is to open a (network) socket
    server.  For reasons I'll eventually explain, this
    has particularly apt semantics under Unix.

Cameron,

I found this recipe (http://code.activestate.com/recipes/474070/) on ActiveState's site that had a working version of a single instance class for Windows that I've used quite successfully. Since I also work a lot Linux, I wrote and donated this version (http://code.activestate.com/recipes/546512/) for Linux that also seems to work well for me.

-Larry
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to