我一直在研究使用 Haskell Warp 构建的像素服务器,并且一直在努力研究如何在守护模式下运行它。
Warp 效果很好 - 我可以使用run
Network.Wai.Handler.Warp 来服务 HTTP,runTLS
使用 Network.Wai.Handler.WarpTLS 来服务 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
在 Web 上使用的单个示例 - 任何帮助都将不胜感激!