2010-07-14 115 views

回答

2

我会用PHP Expect。该文件有一些非常好的usage examples

+1

一旦这个过程开始了,你如何在连续的请求中获得它的句柄? – spoulson 2010-07-14 20:24:30

+0

@spoulson:啊,我明白了 - 现在你的问题已经更清楚了,你已经更新了它:-)。这很难,让我想一想...... – psmears 2010-07-14 21:12:48

0

如果您使用PHP来中继用户键入的命令到一个shell,您可以使用多张呼吁shell_exec

了shell_exec将返回完整的输出,你可以然后回给用户。

1

如果您使用的是Linux,则可以在/ proc中访问proc文件系统。尽管发行版可能有所不同,但在Ubuntu服务器中,我可以在/ proc/<pid>/fd/[012]处找到我的stdio。 0是标准输入,1是标准输出,2是标准错误。如果您将这些内容重定向到/ dev/null,这可能无法正常工作,因为您需要执行一些脱离长时间运行的后台进程的方法。如果您有权访问后台进程的pid(a la http://nsaunders.wordpress.com/2007/01/12/running-a-background-process-in-php/),则应该能够在Linux中访问该进程的stdin/stdout。