module Signal where import Control.Exception (catch) import Control.Monad import Prelude hiding (catch) import System.Posix import Utils ---------------------------------------------------------------- sigStop :: Signal sigStop = sigTERM sigReload :: Signal sigReload = sigHUP sigRetire :: Signal sigRetire = sigQUIT sigInfo :: Signal sigInfo = sigUSR2 sigLogCtl :: Signal sigLogCtl = sigUSR1 ---------------------------------------------------------------- sendSignal :: Signal -> ProcessID -> IO () sendSignal sig cid = signalProcess sig cid `catch` ignore setHandler :: Signal -> Handler -> IO () setHandler sig func = void $ installHandler sig func Nothing ignoreSigChild :: IO () ignoreSigChild = setHandler sigCHLD Ignore