我在Windows Server 2008使用GHC 7.6.3 32-bit编译了一个程序。 我试图在启动时通过窗口中的服务来运行它(并且理想地保持它)。 为此,我已成功使用以下命令创build了一项服务
sc create stworker binPath= "C:UsersvagrantDesktopworker.exe"
我遇到的问题是,当我尝试启动服务时收到以下错误(请参阅下图)。
当我双击它时,可执行文件运行良好。 所以不知道为什么Windows不会允许该服务运行。
无法在Windows上findcabal来查找haskell-mpi的mpi库
Haskell 32位程序在64位Windows上冻结
如何在Linux上安装Haskell Debian Wheezy?
我怎样才能用ghc编译GUI可执行文件?
从Hackage操作源码包如何轻松部署到多个Windows Box?
我不认为这是一个问题瓦特/ GHC 。 我假设GHC编译为本机代码而不是MSIL 。
那么,为什么我不能运行我的可执行文件作为服务的任何想法?
Haskell – 在GHC中编译问题
如何防止控制台窗口在ghc应用程序中closures?
是否有可能生产独立的haskell可执行文件
在GHC编译的二进制中使用过多的神秘的系统时间
使用GHC 7.8rc2和Windows 7无法编译简单的Hello World(或者使用cabal安装软件包)
正如在注释中提到的,您需要实际上为您的程序实现Win32服务API以充当Windows服务,并且可以使用Win32-services包来执行此操作。
还有一个封装包Win32-services-wrapper ,我写的目的是提供一些样板和处理日志记录,所以定义一个服务如下所示:
main = defineservice $ Service { serviceName = "Service",-- Start the service given a debug handle to write to. -- Make sure not to use stdout or stderr as they don't exist. -- Any state needed by serviceStop can be returned here - -- the Service type takes the type of the state as a type parameter serviceStart = debugHandle -> ...,-- Stop the service given the service state returned by serviceStart serviceStop = serviceState -> ... }
在darcsden有一个真实的例子。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。