我想写 web SSH 控制台,我发现了两个问题。
我想做的事。首先,我想执行start.php
具有以下代码的文件。
$process = proc_open('start', array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("pipe", "a")
), $pipes);
其次,我想运行command.php
在文件中创建的进程上运行命令的start.php
文件并从中获取结果。
$pid = 12345;
print_r(process_command('ping google.com', $pid));
我只想访问cmd
过去创建的进程(),向它发送命令并获得结果。
为什么这是问题,如果我可以为每次command.php
执行创建新进程?因为新进程是新会话,如果我在过去command.php
的执行中登录到 mysql,在下一次执行中我必须再次登录到 mysql,因为新进程不记得我已登录。
窗户上的例子。
cmd
我在 PHP 中创建新进程 ( ),我的当前目录是C:\WebServ\
.
- 我写
cd /
命令,我的当前目录是C:\
.
这只是示例,我不想只更改目录,这对我来说不是问题。
问题是如何创建一个进程并在下一次 PHP 文件执行中访问它 -mysql
例如,如果我想记住会话?
- 我可以按
proc_open
功能创建流程。 - 我可以通过 PID 获取 PID
get_process_status
,但是如何获取在当前 PHP 文件执行之前创建的进程资源?
下一个问题,如果可以访问过去创建的进程,如何向创建的进程编写新命令?
我不想使用 PHP 扩展。但是,如果在这种情况下需要这样做,每个答案都会对我有所帮助。
如果无法访问在其他 PHP 执行中创建的进程,我想while(1)
在 PHP 执行开始时控制创建的进程 - 但我希望在这种情况下不需要这样做。
然后我希望有人知道,如何为创建的cmd
进程编写新命令。