
Viktor Deryagin
On Sat, Dec 26, 2009 at 9:47 PM, Ferenc Wagner
wrote: Sorry, I can't find any trace of xmonad in the output. I'd recommend changing the xmonad call in your startup file to something like
I chenged my ~/.xinitrc entry to
exec strace -f xmonad -o xmonad.strace
Output contains errors "createSession: permission denied (Operation not permitted)" (attached). Hope it will help.
Very strange, all the setsid() syscalls are doubled like for example [pid 11584] setsid() = 11584 [pid 11584] setsid() = -1 EPERM (Operation not permitted) [pid 11584] write(2, "xmonad-i386-linux: ", 19) = 19 [pid 11584] write(2, "createSession: permission denied"..., 58) = 58 [pid 11584] write(2, "\n", 1) = 1 setsid() should indeed work as above: after a fork(), one setsid() should succeed, but further ones should fail. What is your GHC version? What is your unix package version? Please compile the following test program, run it under strace -f and send the output back:
import System.Posix.Process
child = do createSession putStrLn "child done" -- remove this line if the program hangs
main = do pid <- forkProcess child putStrLn $ "forked " ++ show pid status <- getProcessStatus True False pid putStrLn $ "child status: " ++ show status -- Regards, Feri.