ssh2_exec:等待进程结束才能运行下一个

2023-12-10

我正在使用 ssh2_exec 运行命令,但看起来它在 $stream1 进程结束之前运行 $stream2。如何仅在 $stream1 结束后运行 $stream2?

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stream1= ssh2_exec($connection, 'command to run');

$stream2 = ssh2_exec($connection, 'command to run 2');

?>

问题解决了:

@Barmar 建议我看看 php.net/manual/en/function.ssh2-exec.php#59324

我通过以下方式解决了这个问题:

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stream1= ssh2_exec($connection, 'command to run');

stream_set_blocking($stream1, true);

// The command may not finish properly if the stream is not read to end
$output = stream_get_contents($stream1);

$stream2 = ssh2_exec($connection, 'command to run 2');

?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ssh2_exec:等待进程结束才能运行下一个 的相关文章

随机推荐

  • 如果没有默认控制器/操作,登录 check_path 路由如何工作?

    我正在开发 symfony 2 3 项目 具有以下路由代码 just2 frontend logincheck pattern login check 它没有 defaults controller testBundle User logi
  • Python UTC DateTime对象的ISO格式不包括Z(Zulu或零偏移)

    为什么Python 2 7在UTC DateTime对象的isoformat字符串末尾不包含z字符 Zulu或零偏移 而与JavaScript不同 gt gt gt datetime datetime utcnow isoformat 20
  • 如何在使用 CMake 进行 make 后将目录内容复制到构建目录中?

    我有一些配置文件 xml ini config源文件旁边的目录 每次制作项目时 如何将 config 目录中的所有文件复制到 build 目录 可执行文件旁边 您可以使用add custom command 假设你的目标名为MyTarget
  • 为 PDF iText ASP C# 中的所有页面设置固定背景图像

    单击按钮时 我在 PDF 上生成 4 页 我添加了此图像以提供背景图像 string imageFilePath parent Images bg image jpg iTextSharp text Image jpg iTextSharp
  • 如何在 SwiftUI 中使用幻灯片效果制作子视图之间的过渡动​​画?

    我想用幻灯片效果为子视图之间的过渡设置动画 但我这样做的方式不起作用 怎样做才正确呢 内容视图 swift struct ContentView View EnvironmentObject var session SessionStore
  • 将 Bash 脚本转换为 Shell

    我有一个用 Bash 编写的脚本列表 现在我需要将它们转换为 Shell 脚本 我知道 bash 是 Shell 规范的扩展实现 因此 我正在寻找 Bash 中实现的扩展的一些规范 即 Bash 中不属于 Shell 规范的一部分 这样我就
  • Python-第二次重复时删除一个字符[重复]

    这个问题在这里已经有答案了 我正在寻找从字符串中删除 逗号 但只有第二次出现逗号 因为它需要采用正确的格式进行反向地理编码 作为一个例子 我在 python 中有以下字符串 43 14 3085 我如何将其转换为以下格式 43 143085
  • “generator.exe”退出,代码为“-1073741819”

    我正在 Visual Studio 和 Xamarin c monodroid 开发工具中开发 android 应用程序 我有一些嵌入到我的项目中的外部 JAR 文件 大多数项目工作正常 但是当我尝试嵌入 Yocto 的 JAR 时 yoc
  • Apache 网络驱动器别名

    我在堆栈溢出中搜索了类似的问题 但似乎没有一个解决方案有效 我正在运行 WAMP 并有一个网络驱动器T 我想将其用作 Apache 中的别名 到目前为止我已经添加了 别名 p ps file server location edu A 订单
  • 如何识别任意神经网络中的循环连接

    我正在尝试用 C 实现增强拓扑的神经进化 我遇到了重复连接的问题 据我所知 对于循环连接 输出基本上是暂时移位的 https i stack imgur com bI4Pc png 在链接的图像中 我展示了一个非常简单的神经网络2 个输入
  • keras中的可变长度输出

    我正在尝试在 keras 中创建一个自动编码器 其中输入和输出具有不同的时间步长 model Sequential encoder model add Embedding vocab size embedding size mask zer
  • UIButton 上的 RxSwift 和 isSelected 属性

    我有三个按钮 我希望一次只选择一个 and etc 我的方法是这样的 class MyController UIViewController IBOutlet var buttonOne UIButton IBOutlet var butt
  • 如何在 C++ 中将 atoi 函数与字符串一起使用

    这是一个基本问题 我使用 C 但不使用 C 11 现在 我想将字符串转换为整数 我是这样声明的 string s int i atoi s 但是 这显示了无法进行此类转换的错误 我查了一下互联网 发现C 11有stoi 但我想使用atoi本
  • 致命文件系统错误后如何恢复 Git?

    主服务器上的文件系统错误后恢复 git 存储库的最快路径是什么 想象一下 您的 OSS 项目的中央服务器发生故障 并且恢复后两天的所有提交都丢失了 你如何把它们拿回来 仅在所有客户端上调用 git Push 就足够了吗 或者还有什么我必须考
  • Gradle 运行 jar 时出现 NoClassDefFoundError

    我正在尝试建立一个 Gradle 项目 其中包含一些 Velocity 函数 到目前为止我有以下文件 src main java com veltes velotest java package com veltes import org
  • 扩展布局模板时 Jinja 不渲染任何内容

    我试图在页面上显示数据 但该页面完全是空的 我知道数据库中有数据 而且我知道query db函数返回正确的结果 但我不明白为什么 Jinja 没有渲染数据 是什么导致了这个问题 app route toto def toto entries
  • Chai 测试对象数组以“包含类似”对象子匹配

    好的 我尝试在这里阅读其他问题 但仍然没有找到直接的答案 如何使用 chai 断言数组中的部分对象匹配 像下面这样 var expect require chai expect var data name test value banana
  • 用于模板组合的车把助手

    我有一个 Handlebar 助手来调用模板中的模板 用法是这样的 applyTemplate subTemplateId arg1 123 arg2 abc 也可以传递html内容 applyTemplate tli a 1 b y an
  • 如何查找字符串拆分期间使用的分隔符 (VB.NET)

    假设我有一个字符串 我想根据几个字符进行拆分 例如 and 如何找出其中哪个字符分割了我的字符串 以便我可以将相同的字符添加回相关分割段的末尾 Dim linePunctuation as Integer 0 Dim myString As
  • ssh2_exec:等待进程结束才能运行下一个

    我正在使用 ssh2 exec 运行命令 但看起来它在 stream1 进程结束之前运行 stream2 如何仅在 stream1 结束后运行 stream2 问题解决了 Barmar 建议我看看 php net manual