fork to shell脚本并使用Haskell终止原始进程

Sac*_*han 5 haskell fork process

我目前正在编写一个Haskell程序,它执行一些初始化工作,然后调用ncmpcpp.我想要做的是启动ncmpcpp并终止Haskell程序,这样只剩下ncmpcpp(可选地,程序可以继续在后台运行,只要它是不引人注意的)

但是,即使我能够启动ncmpcpp,我也无法与它进行交互.我看到它的输出,但输入似乎是不可能的.

我目前正在做的是:

import System.Process (createProcess, proc)
...
spawnCurses :: [String] -> IO ()
spawnCurses params = do 
  _ <- createProcess (proc "ncmpcpp" params)
  return ()
Run Code Online (Sandbox Code Playgroud)

我做错了什么/我该怎么办?

Jan*_*Jan 5

你想要实现的目标听起来就像exec功能系列一样.看看这个executeFile功能.

如果您希望在启动子进程后您的父Haskell进程仍在运行,请阅读有关fork-exec和该forkProcess函数的信息.

可以在http://therning.org/magnus/archives/727找到forkProcess一起使用的完整示例.executeFile