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

时间:2013-10-10 14:14:33

标签: php windows

我完全清楚PHP有一系列可用于向Windows操作系统的DOS bck-end发出命令的功能,根据我的经验。这是完全独立的情况。

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

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向已经运行的命令提示符屏幕发出命令?哪个是由操作系统保持活着的?

1 个答案:

答案 0 :(得分:1)

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

  

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

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