Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Re: Re: Re: Determine if script is already running

by Nitrox (Chaplain)
on Mar 04, 2003 at 21:44 UTC ( #240457=note: print w/replies, xml ) Need Help??


in reply to Re: Re: Re: Determine if script is already running
in thread Determine if script is already running

This bugs me, why does *nix allow deletion of an open and locked file? On Win32 a file can't be deleted until the ref count == 0, is there a way to explicitly set this in *nix?

-Nitrox

  • Comment on Re: Re: Re: Re: Determine if script is already running

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: Determine if script is already running
by Limbic~Region (Chancellor) on Mar 04, 2003 at 21:53 UTC
    Nitrox,
    Not that I know of. There are things you can do to reduce the probability that the file will be accidentally deleted - security through obscurity. These things include:

  • Changing the directory where the file resides permissions to 000.
  • Use non-typical characters in the file name such as a space, asterick, or worse.
  • Use alarm for the original script to check if the file has been deleted and re-create. * This requires a lot of overhead to try and compete with the race condition.
  • Use hard links (not symbolic) so that more than one file combined equal your lock file

    Even with these suggestions, there is not the 100% guarantee. Sometimes you need decide that the probability is an acceptable risk and move on. If you are totally against checking the process table - semaphores may be the way to go.

    Cheers - L~R

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://240457]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (4)
As of 2021-09-19 14:47 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?