我有一个使用 pp 编译的 perl 脚本,将在 Windows 7 机器上作为 Windows 服务运行。我查看了该线程 http://www.perlmonks.org/index.pl?node%5Fid=230377但用处不大,因为大多数都不清楚,而且其中建议的解决方案是创建可执行文件,而不是真正作为 Windows 7 服务运行。我尝试将编译后的 exe 放入 Windows 的计划任务中,但我认为由于某种原因它无法运行。我该如何调试它?
答案1
您可以在 Windows 7 中以管理员身份使用命令行中的命令来创建服务sc.exe
。操作方法如下。
转到“开始”->“所有程序”->“附件”,然后右键单击“命令提示符”。从弹出菜单中选择“以管理员身份运行”。
进入命令提示符后,使用以下命令创建服务。请注意,后面有一个空格binPath=
,这是必需的。
sc create perlsvc binPath= c:\myprogram\myperlprg.exe
这将创建一个名为 perlsvc 的服务,当服务启动时,它将执行 c:\myprogram\myperlprg.exe。如果您现在运行 services.msc,您应该会看到列出的服务。此时,您的服务将被设置为手动启动。您可以从刚刚启动的服务程序中更改它,也可以通过创建服务时的选项进行更改(请参阅本文末尾的链接)。
该值perlsvc
用作服务1sc
的注册表项,也用于通过和命令引用该服务net
。最好保持简短且不带空格。如果您想要更具描述性的内容,可以附加该DisplayName=
选项。再次注意等号后面的必填空格。
sc create perlsvc binPath= c:\myprogram\myperlprg.exe DisplayName= "Important Perl Service"
运行 services.msc 时,您将看到“重要 Perl 服务”作为服务名称。当您运行net start
以从 CLI 查看正在运行的服务列表时,也会显示此名称。在 CLI 中,您仍然可以使用简称,例如net start perlsvc
。
如果您不再需要您的服务,请运行它sc delete perlsvc
,它将被删除。
如果你打算编写服务安装脚本,你可能有兴趣阅读其他选择sc
已在微软网站上记录。
1服务位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
注册表项中。
答案2
尝试使用 SC.exe 将 EXE 转换为 Windows 服务。