You are here: Getting the process ID « PHP « IT news, forums, messages
Getting the process ID

Posted by Joshua Beall on 03/25/05 01:35

Hi All,

I am doing some work where I want to do locking, and prevent scripts from
running in parallel. I see that I could use the semaphore mechanism, but
I'd like for my code to be portable, and that extension is not enabled in
many places.

I need some way for a process to uniquely identify itself. It can then look
at the storage container (flat file, DB, whatever is appropriate in
context), check to see if the requested semaphore is available, and if it
is, acquire it and then mark itself as the owner. It can then check that it
did in fact get ownership (as opposed to another process which attempted to
acquire it at the exact same moment) before proceeding.

However I am stumped at the point where it needs to indicate ownership. How
does the PHP script identify itself? It can't use the script name,
obviously - lots of instances of the script may be running. It can't use
session ID - the user might submit duplicate requests, and they would both
have the same session ID. The best I have been able to think of is to use
the sha1(microtime()) to generate a unique key. But this isn't quite
foolproof, as it is theoretically possible, though unlikely, for two
requests to be at the exact same instant.

The answer that comes to my mind would be to use the process ID. This is
necessarily unique across the entire server, correct? It seems to be
exactly what I need. But I can't seem to figure out how to determine the
current process ID from within PHP. Is this even possible?

Apache 1.3.x/PHP5.0.3

Any ideas?

-Josh

p.s. Please forgive me if I have misused the term "semaphore" - I know it
only from the context I have seen/heard it used in, I don't know the
textbook definition.

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация