当前位置: 首页 > 面试题库 >

将PHP脚本设置为Windows服务

沈琨
2023-03-14
问题内容

我需要将PHP脚本设置为Windows服务。

无论哪个用户登录,我都需要它运行,以及在系统启动时都运行-所以听起来Windows服务是最好的,但是很高兴听到其他建议。

(此脚本连续运行,这不是我可以使用“计划任务管理器”执行的“每5分钟运行一次”。)

涵盖了使用sc.exe程序来安装服务。

但是,根据我的阅读,我需要对PHP脚本进行包装,以接受来自Windows服务管理器的特殊命令。有人能帮忙吗?


问题答案:

也许资源工具包工具(特别是srvany.exe)可以在这里为您提供帮助。MSDN:如何创建用户定义的服务以及有关2008Server的提示可能应帮助您将_任何_ 可执行文件设置为服务。(我已经在Windows 2003 Server,Windows2008Server和Windows XPProfessional 不过是其他资源工具包]上成功使用了此功能

您将创建一个包含的蝙蝠php your-script.php,用srvany.exe和voila对其进行包装,一旦计算机加载了服务,便会启动该脚本。

srvany.exe应该处理那些希望守护程序执行的启动/停止/重新启动调用。它将在启动时加载可执行文件,在停止时终止进程,在重新启动时都执行。因此,您不必担心这部分。您可能想检查register_shutdown_function()是否可以帮助确定服务进程何时终止。

您甚至可以定义对其他服务的依赖关系(例如某些数据库等)。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\THENAMEOFYOURSERVICE]
"DependOnService"="DEPENDONTHIS"

THENAMEOFYOURSERVICE您提供的服务DEPENDONTHIS名称和要依赖的服务名称替换(例如“
Postgres9.0”或其他名称)。将该文件保存到dependency.reg并使用加载regedit /s dependency.reg。(或在资源管理器中双击它……)



 类似资料:
  • 问题内容: 我没有找到关于如何注册一个将接口实现为Windows服务的类的非常好的示例(实际上我没有找到一个示例)。 我是否必须使用procrun注册该实现?但是实现该接口似乎没有意义,因为procrun可以将任何程序注册为Windows服务。 此外,procrun页面(http://commons.apache.org/proper/commons- daemon/procrun.html )上

  • 问题内容: 我正在草拟一组程序的体系结构,这些程序共享存储在数据库中的各种相互关联的对象。我希望其中一个程序充当服务,为这些对象的操作提供更高级别的接口,而其他程序则通过该服务访问对象。 我目前的目标是将Python和Django框架作为实现该服务的技术。我很确定自己知道如何守护Linux中的Python程序。但是,这是系统应支持Windows的可选规格。我几乎没有Windows编程经验,也没有W

  • 我正在Windows上运行npm,希望使用 但是npm在cmd下执行脚本。不知道我可以将此更改为脚本:其中bat1.bat是一个cmd-bat文件,它使用windows样式调用或start命令并行运行命令。它可以工作,但为我提供了一个仅在windows上工作的脚本。 如果我能让npm在bash克隆或cygwin下运行脚本,那就简单多了。 我尝试了但仍然运行cmd。exe 有没有办法告诉npm使用特

  • 问题内容: 我想自动化一个相当简单的任务。为此,我编写了一个小的PHP脚本,该脚本使用PHP-CLI从命令行运行。现在,我想将此脚本移交给某人,但我不想: 放弃源代码 请他在系统上安装PHP 有没有一种方法可以创建PHP脚本的.exe版本。我真的不太担心反编译。我更担心要求人们安装和配置PHP。 问题答案: peachpie. http://www.peachpie.io https://gith

  • 本文向大家介绍python脚本作为Windows服务启动代码详解,包括了python脚本作为Windows服务启动代码详解的使用技巧和注意事项,需要的朋友参考一下 我们首先来看下全部代码: 这里注意,如果你需要更改文件名,比如将win32serviceutil.HandleCommandLine(test1)中的test1更改为你的文件名,同时class也需要和你的文件名一致,否则会出现服务不能启

  • 我正在尝试编译简单的Kotlin Gradle脚本。我已经用build创建了一个Idea项目。格拉德尔。kts包含以下内容: 它的灵感来自gradle/kotlin-dsl存储库中的复制示例,它既没有从IDE编译,也没有从终端中的gradlew编译。它给了我这些错误: 也许我缺少某种插件来包含?我该怎么做?