pidfile-0.1.0.1: Run an IO action protected by a pidfile

Safe HaskellSafe
LanguageHaskell2010

System.PidFile

Description

Run an IO action protected by a pidfile. This will prevent more than one instance of your program to run at a time.

Synopsis

Documentation

withPidFile :: FilePath -> IO a -> IO (Maybe a) Source #

withPidFile path act creates a pidfile at the specified path 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.