【问题标题】:How to Create Windows service from PERL script on Windows 7 64-bit如何在 Windows 7 64 位上从 PERL 脚本创建 Windows 服务
【发布时间】:2014-05-10 18:08:39
【问题描述】:

有没有人举例说明如何从 PERL 脚本在 windows 7 64 位上创建 windows 服务?

在windows XP Professional 32位上,我用Win32::Daemon成功创建了windows服务,它具有回调函数。这不适用于 64 位。

我已经看到了这个http://nssm.cc/usage 并使用它创建了一个服务,但它不保持状态并且它给出了错误。如果有人有合适的例子,也许......

非常感谢一些想法。

【问题讨论】:

    标签: perl windows-7 windows-services 64-bit


    【解决方案1】:

    我现在设法解决了这个问题。

    我的 perl 脚本现在在 Windows 7 64 位上作为 Windows 服务运行。

    基本上 win32::Daemon 在 win 7 64 位上工作,但服务创建需要手动完成。 IE。回调函数和启动都很好。

    这是一个从头开始创建 perl windows 服务的示例。

    1. 创建文件夹 c:/myservice

    2. 从此链接复制代码示例并将其保存到上面的目录中。称之为 myservice.pl (http://www.roth.net/forums/topic.php?id=106)

    3. 在脚本中的 print hello 语句之后添加这两行。

      $Context->{last_state} = SERVICE_RUNNING;

      Win32::Daemon::State( SERVICE_RUNNING );

      这是保持服务运行所必需的。否则它会停止。

    4. 以管理员模式打开 Dos cmd 终端。使用以下命令创建服务

    % sc create myservice binpath= "c:\strawberry\perl\bin\perl.exe"

    成功后会显示以下信息。 [SC] 创建服务成功

    1. 现在我们需要编辑注册表。打开注册表编辑器。 (开始 -> 然后输入 regedit)

    2. 在HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Services->myservice下找到服务

    3. 单击“myservice”并将 imagePath 变量编辑为: c:\strawberry\perl\bin\perl.exe -I "C:\myservice" "C:\myservice\myservice.pl" --run

    4. 现在打开服务窗口并启动服务。 (开始->控制面板->管理工具->服务)

    5. 在脚本的当前目录中,每隔几秒就会创建和更新一个日志。如果使用 cygwin for windows,可以tail。

      % tail -f *.log

    进程将打印 Hello!定期...

    谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      • 2015-08-07
      • 2011-03-03
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多