问题标签 [symfony-process]
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.
symfony - Symfony 进程吃掉终端控制代码
所以我正在Process
为一些命令运行 Symfony,我注意到当我将这些命令写入 Symfony 时OutputInterface
,它没有显示颜色或进度条。我认为命令(npm、artisan、ls 等)正在使用终端控制代码,其中一个类正在使用非标准 ASCII 字符。
编辑:我已经做了一些挖掘,我相信 SymfonyStreamOutput
默认使用它的类。它似乎能够以彩色输出,我试过告诉它OUTPUT_RAW
. 那里没有豆子。也许问题出在其他地方......
有没有一种内置的方法来告诉这些类不要这样做?我怎样才能得到我漂亮的输出?
php - 从 PHP 运行 Node.js 脚本 - 输出被截断为 512 个字符
我们使用 Symfony 进程从 PHP 运行 node.js CLI 脚本。
该脚本始终在一行中将整个响应打印为 JSON。
响应以某种方式被截断为 512 个字符。
我只发现了这一点xdebug.var_display_max_data => 512 => 512
,php.ini
但看不到这是如何相关的。
A) 测试节点脚本
- 从终端节点脚本
$ node user-update.js parameters
返回所有情况下的完整结果 - 比如 629 个字符。 - 来自 Symfony Process 节点脚本的响应被截断为 512 个字符。
B) 测试 Symfony 进程
$cmd = 'node user-update.js parameters';
- 截断为 512。$cmd = 'php -r \'for($i=0; $i<520; $i++){ echo "."; }\'';
- 不截断。$cmd = 'cat long_one_line.txt';
- 打印完整文件。一行 1650 个字符。
C) 尝试使用 PHP shell 函数
可能是什么原因和解决方案?
- 节点 v7.6.0
- PHP 7.1.2
php - symfony 进程的进程栏
我有一个长期运行的任务,我已将其作为一个进程合并到我的 symfony 项目中。这就是我所说的过程
我的进程目前没有任何输出(它正在解析 xml 文件并将数据推送到 db)。完成 currprogress 变量后,应该将其推送到我的 .twig 模板中,然后它将填充进度条。
我需要显示文件解析的进度(即处理了多少项目,因为它可以达到 100k 行,并且该过程可以运行 2-3 小时)。
目前,我无法从我的流程中获取增量输出以将其推送到我的 temaplte。最好的方法是什么!
php - Symfony 进程 - 后台任务
我想用 Symfony Process 组件运行一个孤立的后台进程。我不能使用 kernel.terminate 事件。这是我试图做的:
这是我想运行的过程:
这是我想运行我的进程的脚本:
问题是,test.php
终止后,script.php
无法正常工作。主脚本的终止会杀死所有子进程。是否可以让孤立进程与 Symfony 进程一起运行?
php - 从 docker 到 websocket 的彩色输出
这可能是一个有点复杂的问题,但我愿意尝试向我提出的任何和所有建议。
我正在运行一个克隆 git 存储库的 docker 实例,它是一个 php 7 apache docker 实例:
使用Symfony 进程组件,我正在启动我的容器并传递我的环境变量。
我添加了xterm-256-color
环境以确保我得到彩色输出(如果这是错误的,请纠正我)。
为了显示容器的输出,我使用 Symfony 进程组件将其发送到 websocket。
此时,我可以使用 socket.io 之类的东西将其实时显示在网页上。
问题是我想以正确的颜色显示 docker 输出,就像您通常在终端上看到的那样。不过,此时似乎所有格式和颜色都丢失了。
是否有任何网络可以将 docker 输出传递到 websocket 并仍然保持我的颜色以显示在网页上?
欢迎任何提示或技巧来指导我正确的方向,因为我在这里问了很多。
感谢阅读,加油。
编辑
需要明确的是,到目前为止,我还没有得到任何彩色输出,从 docker 容器给我的输出看起来就像这样(作曲家示例):
php - Symfony 进程不执行命令
从控制器方法中,我想在后台运行 Symfony 命令。
该过程似乎有效,因为如果我执行$process->getPid();
,我会得到一个 pid,但不会执行该命令。
我进行了调查,进行了几次测试,得到以下结果:当我注释类Process.php ( $this->status = self::STATUS_STARTED;
) 的第 290 行时,将执行命令。如果没有,什么都不会发生。
有没有人遇到过这个问题?什么会导致这种情况?我指定我使用 Symfony 2.8.28 和 PHP 7.1.10。问题出现在 MacOS 和 Ubuntu Server 上。
当我转储进程并执行手动显示的命令时,一切正常。
php - 从 PHP 运行 AMPL 代码(Laravel 进程)
我正在尝试使用 Symfony Process 从 Laravel 运行 ampl .run (或任何 ampl 代码)文件。我的代码如下:
但我无法启动ampl。我收到如下错误:
""" 命令 "'./ampl'" 失败。\n \n 退出代码: 2(滥用 shell builtins)\n \n 工作目录: /usr/local/bin/amplitude/amplide.linux64\n \ n 输出:\n ================\n \n \n 错误输出:\n ================\n """
我怀疑这是目录中的权限错误,但是当我使用时:
它工作并输出文件和文件夹的列表。我知道ampl基本上是一个终端程序,那么我如何访问和写入命令呢?
如果有人可以解释如何从 Process 访问终端程序,我认为这将非常有帮助。先感谢您。
python - docker and python using symfony process
I am using Laradock and want to be able to run a python script from my laravel app using Symfony Process. From inside the root on my container I can run "python3 script_name.py arg1" and it runs just fine. pip list shows all modules needed. When I run it from inside Laravel, it tells me:
I have used a non-docker Laravel app to do this just fine, using:
What am I missing?
python-3.x - 从远程服务器(Debian)上的 Laravel 控制器运行 Python3 时出现 Symfony/Process 异常
我正在尝试执行一个 python 脚本(3.6.5),它位于我的 Laravel 应用程序文件夹中的一个文件夹中。从控制器调用脚本并检索脚本的输出。我正在使用 Symfony/process 来执行脚本,如下面的代码所示:
在我的本地主机中,无论是从我的终端还是从我正在运行的应用程序通过 HTTP 请求,都可以毫无问题地调用该脚本。但是,在我将我的应用程序版本上传到我的远程服务器(即 Debian)后,我得到了以下异常:
异常指出 python 脚本中的导入错误。但是,当我直接或通过 Artisan 命令从远程服务器的终端执行脚本时,一切正常。对正在发生的事情有任何想法吗?
提前致谢!
php - 带有 git clone 的 Symfony 进程进度条
我正在使用 Symfonie 的 Process 组件,我正在运行 git clone 命令并希望显示它的进度条到目前为止,我已经这样做了:
但这仅在克隆完成后显示完成的进度条