[CentOS] Re: Any one have a good example...
Scott Silva
ssilva at sgvwater.com
Tue Aug 29 19:08:35 UTC 2006
James Olin Oden spake the following on 8/29/2006 11:48 AM:
> Actually if you use a language that supports flock() do the following:
>
> Create lock file at installation of the script.
> In script call flock(2) in a non-blocking manner against this file.
> If you don't aquire the lock then exit with suitable message.
> If you do get the lock do your stuff and exit.
>
> Locks aquired by flock automatically go away when the file handle is
> closed (and the filehandle automatically gets closed like or not after
> you exit a proccess...also in various languages scoping will also
> apply).
>
> This is easily done in perl (man perlfunc and look up flock()), and if
> your comfortable in C its pretty trivial create said wrapper.
>
> The key is the file must pre-exist before your script is ever called,
> because there is a race condition on creating the file, but you
> guarantee the files pre-existance the race condition is removed.
> Typically I would make the "lock" file owned by the package that
> delivers the software. No fuss, no muss.
>
> Good luck...james
>
> On 8/29/06, Scott Silva <ssilva at sgvwater.com>
> wrote:
>> ...of a shell script for rsync that won't start again if it is already
>> running?
>> I thought of using a lock file, but what if it is killed mid script or
>> bombs?
I was hoping to throw this together in bash, but I guess I'll dig out my perl
book. I need some practice anyways.
--
MailScanner is like deodorant...
You hope everybody uses it, and
you notice quickly if they don't!!!!
More information about the CentOS
mailing list