问题标签 [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 - 锁定文件不是最新的 composer.json 中的最新更改
我正在尝试克隆一个 github 存储库并composer install
在其上发布一个。但我得到了这个:
警告:锁定文件不是最新的 composer.json 中的最新更改。您可能会得到过时的依赖项。运行 update 来更新它们。
跑步时composer update
composer.json(需要部分)
php - 在 Symfony 中运行一个独立的无休止的工作
- Symfony:4.1
- PHP: 7.1
我有使用Ratchet的工作 websocket 服务器。websocket 本身工作正常。我可以使用 Symfony 的命令从终端运行它
我无法解决其中一些问题:
- 您需要专用一个终端来运行此命令
- 大多数虚拟主机服务不让您访问终端
- 我希望管理员能够打开和关闭 websocket 服务器
- 管理员不需要知道终端是什么
对于问题 1,我尝试使用这种“分离”作弊,但它不能解决问题 2:
为了解决所有四个问题。我尝试过使用一个过程。但这种方法的问题是:
$process->run()
- 运行一个php bin/console
总是以超时结束的进程$process-start()
- 启动一个进程意味着它异步运行,但这也意味着该进程在请求结束后终止,也终止了我的 websocket 服务器。
这是一个例子
我尝试创建一个控制台应用程序,并从那里运行命令。但与流程相同的问题也适用于此处。
作为最后的手段,我尝试了一个名为DtcQueueBundle的包,因为它提到了以下内容:
使用方便
- 用一两行代码启动后台任务
- 轻松添加后台工作者服务
- 只需几行即可将任何代码转换为后台任务
所以我按照他们的要求做了,创建了一个工作人员并尝试将其作为“后台任务”运行
他们的文档绝对是最差的!我什至试图深入研究他们的代码以从我的控制器内部开始工作。但我无法让它以一种超然的方式运行。
不管发生什么,我相信我的命令没有运行,因为它劫持了我的 PHP 线程。我想知道,有没有可能把这个没完没了的过程分开?甚至可以同时运行两个 PHP 实例吗?我会这么认为!
感谢您的帮助,对不起,很长的帖子
laravel - 在后台执行 Laravel/Symfony/Artisan 命令无法实时运行
我在 Linux 服务器上的 laravel 中使用 Laravel symfony 进程进行后台调用。我创建了需要很长时间才能执行的工匠命令,所以我有情况在按钮单击时在后台调用工匠命令。我得到了解决方案,但它适用于 localhost 而不是 aws 服务器。
我使用了以下解决方案:-
它在本地工作正常但不能在实时服务器上工作(linux aws服务器)
php - Symfony/进程权限被拒绝
我正在使用 Symfony/Process 在 Laravel 的 web.php 路径中从 Laravel Dusk 运行测试。这是我正在使用的代码:
我认为它会正常工作,但我收到了这个错误:
Symfony\Component\Process\Exception\RuntimeException:无法打开临时文件来写入进程输出:fopen(C:\WINDOWS\sf_proc_00.out.lock):打开流失败:权限被拒绝
在 C:...\laravel-master\vendor\symfony\process\Pipes\WindowsPipes.php:60
我在 Symfony 文档中读到以下命令应该对我有帮助:
chmod -R 777 变量/日志/
但是我使用的是 Windows,我不知道如何获得它,也不知道该命令是否正确,或者我是否应该授予其他文件的权限。
gnupg - 使用脚本更改 GnuPG 密码
我正在努力使用脚本更改GnuPG私钥密码。
据我所知:它返回该过程最终成功,但它不会更改密码。gpg的任何其他形式的选项都会导致错误并且不会更改密码。
有人有任何提示吗?无论是否使用 Symfony 的流程组件,我都会接受答案——我只需要让它工作。
也欢迎 Python/Bash/Expect 答案。它应该可以在不暴露命令行中的密码短语的情况下工作。
php - Laravel 中的 Symfony\Process 包(用于 python 文件)
我正在尝试在 Laravel Project 中运行 python 文件。因此,我使用 Symfony\Process 包。我的代码如下所示:
当我使用这条线时:
我的 laravel 项目返回错误(我在移动应用程序中使用 laravel 框架作为后端,所以我看不到确切的错误;我只能看到我的后端有问题)
Το 总结一下,我运行上面的代码,但进程不成功。我检查它的条件:
有人知道吗?
php - Symfony\Component\Process\Process 无法运行 audit2allow
我正在尝试audit2allow
使用Symfony\Component\Process\Process
.
当我exec("audit2allow -a -M a2a");
在 PHP 中运行时,它工作得很好,a2a.pp
并且a2a.te
已经生成。
但是,上面的代码产生下面的输出
这是有空时的典型输出/var/log/audit/audit.log
。我需要进行哪些更改才能使其正常工作?Symfony 声称这不是一个错误。
https://github.com/symfony/symfony/issues/35862
更新
使用Symfony\Component\Process\Process
(上面的代码)实际上会生成文件a2a.te
,但它只有 1 行。
而 usingexec()
会生成a2a.te
包含多行的文件:
为什么运行相同的命令Symfony\Component\Process\Process
并exec()
给出不同的结果?
phpunit - 对 Symfony 4.2 进程进行单元测试运行无限循环(而不是超时),没有单元测试它工作正常
假设我有以下 Symfony 4 命令:
如果我简单地调用bin/console app:command1
它将返回预期的命令列表。基本上按我的预期工作。
但是,如果我有一个使用Symfony\Component\Console\Application::run()
启动此命令的 phpunit 测试,我最终会Symfony\Component\Process::wait()
在
将$this->processPipes->areOpen()
永远开放的地方。
在我看来,如果我通过 phpunit 在进程中使用任何 Symfony 控制台命令,总会有两个管道像这样打开:
但我不知道这些实际上是什么。我还在 htop 中看到,start()proc_open
实际上启动了一个新进程,但它只是挂起(完全没有做任何事情,甚至无法调试它),直到超时。错误日志中没有任何内容(超时除外)。
php - 如何将通配符 GLOB 传递给由 Symfony 控制台包装的 rsync?
我想做的事
我想将所有 XML 文件/source/
从/target/
我如何尝试做到这一点
我正在使用 Symfony 进程/控制台组件作为 rsync 的包装器。
- 流程组件 ^5.0
- Symfony 控制台 ^4.3
- PHP 7.2。
我的问题
php bin/console command:moveFiles /source/*.xml /target/
通过运行结果调用我的命令:
Too many arguments, expected arguments "command" "source-path" "target-path".
似乎 /source/*.xml 中的 * 会抛出 Symfony (?) 并且不会让它识别提供的正确数量的参数。转义 * 会rsync -avz --remove-source-files /source/\*.xml /target/
导致:
rsync: link_stat "/source/*.xml" failed: No such file or directory (2)
如何将通配符 GLOB 传递给 symfony 包装的 rsync?有没有另一种方法可以使用控制台来实现这一点?
python - 从 laravel 运行 python
我正在尝试从 Laravel 运行 python 脚本,SymfonyProcess
组件如下:
我的控制器:
Python脚本:
但我在 dd 中得到的只是""
你认为是什么问题?