gpt4 book ai didi

haskell - 如何在守护进程模式下运行 Warp?

转载 作者:行者123 更新时间:2023-12-02 10:04:37 24 4
gpt4 key购买 nike

我一直在研究使用 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

我的问题是弄清楚如何使用 detachDaemon从 MissingH (System.Daemon) 中分离我的服务器并在 Ubuntu 上的后台运行。

在我的 Main.hs 中,我尝试添加 detachDaemon像这样的 Action :

main :: IO ()
main =
detachDaemon >> cmdArgs options >>= getConfig . optionsConfig >>= start

但是程序只是默默地退出,没有错误,并且当我运行 ps -ef | grep snowhuskyd 时没有任何显示。 .

我应该如何使用detachDaemon - Warp 是否有可能?我找不到使用 detachDaemon 的单个示例在网络上 - 任何帮助将不胜感激!

最佳答案

我做了更多挖掘,发现 this thread ,其中 Yesod 用户(Yesod 是构建在 Warp 之上的 Web 框架)询问如何使用 hdaemoniz 守护进程 Yesod e(另一个守护进程库),Yesod/Warp 负责人 Michael Snoyman 说:

As an aside, I disagree with the notion that daemonizing is the rightway to run a process, and think that Upstart (or daemontools, orangel, or...) is the correct approach. But I know others havedifferent opinions on this.

In other words: I don't think it's something we can fix, and in thisparticular case, I don't think it's worth fixing.

Angel来自 Bump 团队的看起来特别好,而且它是用 Haskell 编写的,所以也许我应该这样做,而不是试图将守护进程硬塞到我自己的应用程序中。

我暂时保留这个问题,以防人们有其他想法!

关于haskell - 如何在守护进程模式下运行 Warp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9931689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com