使用 PHP 将命令泵入已在运行的 CMD 提示符中


Using PHP to pump commands into an already running CMD Prompt

我完全知道PHP有一系列函数可用于向Windows操作系统的DOS后端发出命令,唉,根据我的经验。这将在完全独立的方案中运行。

我一直在研究向已经运行的命令提示符发出命令并打印结果的方法。我目前的设置如下:

Windows Server 2008R2 (IIS, PHP5.5,MSSQL & MySQL server(

已运行的命令提示符屏幕,由以下内容初始化:

 C:'Datalog'sys'dedi.exe -logfile=C:'inetpub'wwwroot'Syslog'

现在的问题是,我知道的功能,例如:exec((system(( 和 passthru(( 仅在单独的环境中运行命令。

为什么我不从 php 开始执行?这可以使用PHP和/或ajax解决方案来完成,但是将遇到的问题是,当导航离开页面时,执行将关闭,再次导航到页面时,可能会导致重复运行环境

所以,我的总体问题..是否可以使用 PHP 向已经运行的命令提示符屏幕发出命令?哪个由操作系统保持活动状态?

简短的回答是否定的,这是不可能的。 Web 服务器将启动独立于任何其他 shell 的新进程。 您可以编写一个命令行应用程序,该应用程序在命令提示符下连续运行,并从 Web 应用程序获取 IPC 消息以获取说明,但考虑到您主要关注的问题,这可能太复杂了:

将遇到的问题是,当导航离开时 执行将关闭的页面,再次导航到页面时, 它可能会导致重复运行环境

这些问题可以通过其他方式解决。 进程可以异步启动,以独立于 Web 应用程序运行,并在连接关闭时继续运行。 为了防止"重复运行环境",启动的进程或 Web 应用可以使用信号量或其他技术来防止重复运行。