[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ale] Only one process
On 6/5/2010 7:06 AM, Jim Kinney wrote:
> Since lsof will show a file open for execution before a write of the pid
> is committed, use a grep on lsof for the count of opened copies. If
> greater than one, exit.
Still racy. Two instances could start, both see more than one
copy of itself running, and bail without doing anything at all.
All you need is a context switch before lsof gets to run, and
there's lots of room for that.
Of course, the naive solution of just checking for /var/myname.pid
will work 99% of the time, but when it doesn't, you'll be
Forget Jesus: stars died so that you could be here today.
- physicist Lawrence Krauss