22 lines
565 B
Haskell
22 lines
565 B
Haskell
|
import System.Posix.Process
|
||
|
|
||
|
main = do
|
||
|
pid <- getProcessID
|
||
|
ppid <- getParentProcessID
|
||
|
ppgid <- getProcessGroupIDOf ppid
|
||
|
-- join the parent process
|
||
|
putStr "Testing joinProcessGroup: "
|
||
|
joinProcessGroup ppgid
|
||
|
pgid1 <- getProcessGroupID
|
||
|
print $ ppgid == pgid1
|
||
|
-- be a leader
|
||
|
putStr "Testing createProcessGroupFor: "
|
||
|
createProcessGroupFor pid
|
||
|
pgid2 <- getProcessGroupID
|
||
|
print $ pid == fromIntegral pgid2
|
||
|
-- and join the parent again
|
||
|
putStr "Testing setProcessGroupIDOf: "
|
||
|
setProcessGroupIDOf pid ppgid
|
||
|
pgid3 <- getProcessGroupID
|
||
|
print $ ppgid == pgid3
|