Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Run an IO action protected by a pidfile. This will prevent more than one instance of your program to run at a time.
- withPidFile :: FilePath -> IO a -> IO (Maybe a)
Documentation
withPidFile :: FilePath -> IO a -> IO (Maybe a) Source #
creates a pidfile at the specified withPidFile
path actpath
containing the Process ID of the current process. Then act
is run,
the pidfile is removed and the result of act
returned wrapped in a
Just
.
If the pidfile already exists, act
is not run, and Nothing
is returned.
Any other error while creating the pidfile results in an error.
If an exception is raised in act
, the pidfile is removed before
the exception is propagated.
The pidfile is created with O_CREAT
and O_EXCL
flags to ensure that
an already existing pidfile is never accidentally overwitten.