【发布时间】:2012-04-13 11:20:22
【问题描述】:
我一直在研究使用 Haskell Warp 构建的像素服务器,并且一直在努力研究如何在守护模式下运行它。
Warp 效果很好 - 我可以使用 Network.Wai.Handler.Warp 中的 run 来服务 HTTP,使用 Network.Wai.Handler.WarpTLS 中的 runTLS 来服务 HTTPS,我可以通过生成一个新线程来运行这两者:
startBoth :: Config -> IO ()
startBoth config = do
_ <- forkIO $ startHTTPS config
startHTTP config
我的问题是弄清楚如何使用 MissingH (System.Daemon) 中的 detachDaemon 来分离我的服务器并在 Ubuntu 的后台运行。
在我的 Main.hs 中,我尝试像这样添加 detachDaemon 操作:
main :: IO ()
main =
detachDaemon >> cmdArgs options >>= getConfig . optionsConfig >>= start
但随后程序会静默退出而不会出错,并且在我运行 ps -ef | grep snowhuskyd 时没有任何显示。
我应该如何使用detachDaemon - Warp 甚至可以吗?我在网络上找不到使用 detachDaemon 的单个示例 - 任何帮助都将不胜感激!
【问题讨论】:
标签: haskell haskell-warp