Cum, 2009-06-19 tarihinde 12:42 +0200 saatinde, Deniz Dogan yazdı:
2009/6/19 Aycan iRiCAN
: Cum, 2009-06-19 tarihinde 11:58 +0200 saatinde, Deniz Dogan yazdı:
2009/6/18 Deniz Dogan
: Hi
I couldn't come up with a better subject than this one, so anyways...
I have a small program which spawns a subprocess. However, when I hit C-c, the subprocess won't die, instead it will just keep running until it's done or until I kill it. I've looked around in System.Process for something suitable for my needs, but I can't seem to find it. Any ideas?
With a tip from a person outside of the mailing list I found System.Process.system, which essentially does exactly what I was asking for.
Hey I'm already subscribed :) You can read from "sout" and "serr" with below example. Hope that it helps.
module Main where
import System.Process -- using process-1.0.1.1
main = do (_, sout, serr, p) <- createProcess (proc "sleep" ["10"]) { std_out = CreatePipe , std_err = CreatePipe } r <- waitForProcess p return ()
Thanks!
But this was the approach I used before I went to System.Process.system and it did not work on my Linux machine.
Give it a try. Try to send CTRL-C and look if "sleep 10" (which is a subprocess) process terminates. aycan@aycan:~/haskell$ time ./deniz2 && ps -ef | grep sleep ^C real 0m0.707s user 0m0.001s sys 0m0.004s aycan 13098 4430 0 13:50:23 pts/7 0:00 grep sleep It terminates with ghc 6.10.3 on OpenSolaris. Best Regards, -- aycan