Ensure only single application instance.
Larry Bates
larry.bates at vitalEsafe.com
Sat Aug 30 08:48:58 EDT 2008
Cameron Laird wrote:
> In article <dPZtk.60600$5p1.41655 at en-nntp-06.dc1.easynews.com>,
> Uberman <bhood37 at hotmail.com> wrote:
>> On Fri, Aug 29, 2008 at 6:51 AM, Heston James <heston_james at live.co.uk> 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
More information about the Python-list
mailing list