| |||||||||||||
| |||||||||||||
Contents | |||||||||||||
Description | |||||||||||||
POSIX process support | |||||||||||||
Synopsis | |||||||||||||
Processes | |||||||||||||
Forking and executing | |||||||||||||
forkProcess :: IO (Maybe ProcessID) | |||||||||||||
forkProcess is a wrapper around forkProcessPrim similar to forkProcessAll which returns a Maybe-type. The child receives Nothing, the parent Just (pid::ProcessID). In case of an error, an exception is thrown. NOTE: currently, main threads are not stopped in the child process. To work around this problem, call forkProcess from the main thread. If you really want to copy all threads into the new process, use forkProcessAll instead. | |||||||||||||
forkProcessAll :: IO (Maybe ProcessID) | |||||||||||||
forkProcessAll is the low-level wrapper for the fork system-call. Standard disclaimer for lazy I/O, shared file handles etc. apply. Notice that all Concurrent Haskell threads will be copied into the new process. See forkProcess on how to start a new process with only one active thread. | |||||||||||||
executeFile :: FilePath -> Bool -> [String] -> Maybe [(String, String)] -> IO () | |||||||||||||
Exiting | |||||||||||||
exitImmediately :: ExitCode -> IO () | |||||||||||||
Process environment | |||||||||||||
getProcessID :: IO ProcessID | |||||||||||||
getParentProcessID :: IO ProcessID | |||||||||||||
getProcessGroupID :: IO ProcessGroupID | |||||||||||||
Process groups | |||||||||||||
createProcessGroup :: ProcessID -> IO ProcessGroupID | |||||||||||||
joinProcessGroup :: ProcessGroupID -> IO () | |||||||||||||
setProcessGroupID :: ProcessID -> ProcessGroupID -> IO () | |||||||||||||
Sessions | |||||||||||||
createSession :: IO ProcessGroupID | |||||||||||||
Process times | |||||||||||||
data ProcessTimes | |||||||||||||
getProcessTimes :: IO ProcessTimes | |||||||||||||
Scheduling priority | |||||||||||||
nice :: Int -> IO () | |||||||||||||
getProcessPriority :: ProcessID -> IO Int | |||||||||||||
getProcessGroupPriority :: ProcessGroupID -> IO Int | |||||||||||||
getUserPriority :: UserID -> IO Int | |||||||||||||
setProcessPriority :: ProcessID -> Int -> IO () | |||||||||||||
setProcessGroupPriority :: ProcessGroupID -> Int -> IO () | |||||||||||||
setUserPriority :: UserID -> Int -> IO () | |||||||||||||
Process status | |||||||||||||
data ProcessStatus | |||||||||||||
| |||||||||||||
getProcessStatus :: Bool -> Bool -> ProcessID -> IO (Maybe ProcessStatus) | |||||||||||||
getAnyProcessStatus :: Bool -> Bool -> IO (Maybe (ProcessID, ProcessStatus)) | |||||||||||||
getGroupProcessStatus :: Bool -> Bool -> ProcessGroupID -> IO (Maybe (ProcessID, ProcessStatus)) | |||||||||||||
Produced by Haddock version 0.4 |