1

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

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

Windows Server 2008R2 (IIS, PHP5.5,MSSQL & MySQL 服务器)

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

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

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

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

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

4

1 回答 1

1

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

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

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

于 2013-10-10T14:31:14.807 回答