将 perl 脚本作为 Windows 7 服务运行

将 perl 脚本作为 Windows 7 服务运行

我有一个使用 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 服务。

相关内容