如何使用Symfony \ Component \ Process \ Process运行多个命令

时间:2018-03-16 14:01:19

标签: laravel symfony cloudfoundry swisscomdev

我们为我们的应用使用https://www.cloudfoundry.org/主机。 要连接到服务器,我们必须使用cf ssh APP-NAME而不是普通的ssh命令。

现在我想写一个像https://deployer.org/这样的简单任务运行器来在服务器上运行一些工匠命令。 为此我累了Symfony\Component\Process\Process,它可以连接到服务器,但是我无法保持连接打开以运行其他命令。

有谁知道如何保持连接打开并运行一些命令?

这是我目前的代码:

use Symfony\Component\Process\Process;

$process = new Process("cf ssh APP-NAME");
$process->setPTY(true);

// Add some other commands like "php artisan migrate" 

$process->run();

echo $process->getOutput();

1 个答案:

答案 0 :(得分:0)

在远程服务器上执行命令是启动子进程的完全不同的功能。所以它不属于Process组件,而属于另一个库。 尝试使用此phpseclib/phpseclib,您可以找到好的手册phpseclib/phpseclib manual

或者这个ssh-client/ssh-client

另外,请看一下这个laravel包laravelcollective/remote