Я работал на пиксельном сервере, построенном с использованием Haskell Warp, и изо всех сил пытался понять, как запустить его в демонизированном режиме.
Warp отлично работает - я могу использовать run
из сети.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
вот так:
main :: IO ()
main =
detachDaemon >> cmdArgs options >>= getConfig . optionsConfig >>= start
но программа просто тихо завершает работу без ошибок и ничего не появляется, когда я запускаю ps -ef | grep snowhuskyd
.
Как я должен использовать detachDaemon
- этоэто вообще возможно с Warp?Я не могу найти ни одного примера использования detachDaemon
в Интернете - любая помощь будет с благодарностью получена!