I've run into some strangeness with the process package. When you kill some
processes on the command line you correctly get a non-zero exit status.
However when using the process package's terminateProcess (which sends a
SIGTERM), it returns an ExitSuccess:

module Main (main) where

import Control.Concurrent (threadDelay)
import System.Process (createProcess, proc, getProcessExitCode,
terminateProcess)

main :: IO ()
main = do
  (_, _, _, ph) <- createProcess $ proc "/usr/bin/sleep" ["100"]
  terminateProcess ph
  threadDelay 1000000
  print =<< getProcessExitCode ph

-- prints Just ExitSuccess, should be Just (ExitFailure 143)

term1: sleep 100
term2: pkill sleep
term1: echo $? # 143

Anyone know what might be going on?
-- 
Michael Xavier
http://www.michaelxavier.net
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to