问题标签 [proc-open]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP proc_open 多输入
我想使用 proc_open 函数启动一个 CLIPS 进程,以便与 CLIPS 脚本进行交互。所以如果我这样设置:
一切似乎都很好。该过程开始并正确结束
但是当向 CLIPS shell 发送多个输入时,例如:
然后该进程不会终止,并且 PHP 在 proc_close 处挂起,并且只有在从系统监视器中终止该进程时它才会完成。检查stream_get_contents
输出似乎永远不会将(退出)输入发送到进程。此外,当调用 fclose( $pipes[0]
) 时,CLIPS 进程的 CPU 使用率从 0% 直接变为 100%。这可能是什么原因?
java - 使用 proc_open() 在 PHP 中运行 java 并获取输出
请帮忙。我无法弄清楚通过 proc_open() 运行 java 文件的问题是什么。它适用于 C 程序,我能够获得每行的输出,所以我认为以这种方式获取输出流没有任何问题:
为了在 PHP 中运行 Java,我使用以下代码:
检查扩展名,然后编译 if java(这是成功的,因为它能够在同一目录中生成 CLASS 文件:
要执行程序,
我曾尝试在 Window 的 cmd 中运行此命令,并且它有效(能够运行 java 并打印“Hello, World”),所以我确信它没有任何问题。
我在错误日志文件中收到此错误:
我不知道 PHP 在通过 proc_open 执行 java 时是否使用了另一个 java 源路径。我假设因为它使用的是我的 Window 的 cmd,所以不会有库加载问题或任何与“版本”相关的问题。
这里可能是什么问题?非常感谢!我将不胜感激。
php - 在 Linux 上使用 pear 配置 php
我在我的 linux 机器上安装了lampp。我正在尝试使用 proc_open 如下。
但我收到警告:proc_open() [function.proc-open]: pty 伪终端在此系统中不支持...
我发现我需要在 php 中启用 pty,例如 ./configure --enable-pty。但是php是作为lampp的一部分安装的。我无法配置 php。
如何使用 pear 启用 pty。请帮忙。
php - 使用 proc_open 验证使用登录信息
我一直想使用实际机器的用户名和密码来验证网站凭据。我已经研究了其他一些解决方案,但我认为这种方法会给我带来最少的问题,因为它已经是我知道可以工作的 shell 函数,只需要很少的设置,而且看起来很容易管理。
注意,这是我第一次发帖(大声笑 PHP 笑话),所以我的格式可能不是那么漂亮。
这是简短的示例脚本。
当我运行它时,输出如下
我试着改变
至
但现在它说
此外,这是在 OSX 服务器上运行并使用 PHP 5.4.17 版!如果它适用于另一个操作系统,我不知道。
php - PHP:通过使用 proc_open("ssh hostname 'tail -F ~somefile' ") 死锁
碰巧我需要通过 ssh 通过 php(使用 phpunit)跟踪文件状态。但是当我尝试启动此代码时:
什么也没有发生 - 没有输出,我猜死锁已被执行:脚本没有退出。有什么想法吗?或建议?
php - 环境未传递给由 proc_open 打开的进程
我在将环境变量传递给使用 proc_open 打开的进程时遇到问题。我在http://us2.php.net/manual/en/function.proc-open.php上找到了以下示例
该示例应像文档中所说的那样回显 env 数组。但是在我的机器(PHP 5.4.6-1ubuntu1.4 (cli))上,回显数组是空的。是否存在一些禁止 env var 传递给进程的 Suhosin 或 php.ini 限制?我不知道。
php - php proc_open 'su: 必须从终端运行'
我在个人 Ubuntu Server 机器上有这个 PHP 代码:
我从 PHP 得到这个响应:
很明显我想更改活动用户但是有什么办法可以从 php 中做到这一点?
php - 在 PHP 脚本中从 aria2c 读取 STDOUT
这是简单的PHP脚本:
问题是输出中的进度数据在 aria2c 完成之前“停滞”。当 aria2c 进程结束时,它会立即将所有输出突发到我的脚本中。它与 fpassthru() 无关,我尝试了普通的 fread(),结果相同。
流量:
[注意] 文件已存在。重命名为 /tmp/file100m.dat.4。
<...巨大的延迟然后爆发...>
[#edb1dc 70MiB/100MiB(70%) CN:1 DL:8.4MiB ETA:3s]
[#edb1dc 81MiB/100MiB(81%) CN:1 DL:9.7MiB ETA:1s]
[#edb1dc 92MiB/100MiB(92%) CN:1 DL:10MiB]
我需要得到像“[#edb1dc 92MiB/100MiB(92%) CN:1 DL:10MiB]”这样的行,而不必等待 aria2c 结束以收集有关当前进度的信息。
更不用说,如果我在控制台 aria2c 中运行完全相同的命令可以正常工作。
php - proc_open() 子进程在完成任务之前被终止
我正在尝试使用以下语句生成一个进程
通过 PHP 脚本。我正在使用生成的进程来执行一个简单的 Scala 程序并捕获程序的输出。但不幸的是,我没有成功。子进程成功运行,但几秒钟后由于 sigterm 信号而终止。
最后它的打印过程得到了sigterm。我一直尝试在httpd中使用ulimit来增加CPU时间,我还尝试设置最大执行时间但没有成功。我将非常感谢这方面的任何帮助。
proc-open - 如何启用 Zpanel php 函数 proc_open
我有一台带有 Zpanel 的 VPS 服务器。我想启用 proc_open 功能。我在 php.ini 文件中搜索 disable_functions 但什么也没有。我的脚本说这个功能被禁用了。如何解决这个问题?谢谢。