首页 > 解决方案 > Heroku:“heroku ps:exec”和“heroku run bash”有什么区别?

问题描述

heroku ps:exec和 和有什么不一样heroku run bash?我只是想理解这个概念。两者似乎都在为远程容器/测功机建立 SSH 隧道。那么为什么heroku ps:exec在第一次使用时需要重新启动测功机?看起来这个命令更通用(因为它使用默认 shell),那么需要为它配置/安装什么?

标签: herokuheroku-cli

解决方案


heroku run bash创建一个独立的(即不与任何特定进程相关联),让您的应用程序代码可用并为您提供 bash 会话。这对于运行一次性任务(如数据库迁移)很有帮助,也有助于调试需要查看文件系统的问题。

heroku ps:exec隧道到已经作为您的编队一部分运行的测功机。例如,如果您有 5 个网络测功机,您可以直接通过隧道连接web.3。这在测功机出现问题(例如内存压力或高负载)的情况下很有用。能够连接到有问题的测功机对于调试非常有用。您还应该注意,您的配置变量(即在 heroku 设置选项卡上设置的环境变量)未在heroku ps:exec会话中设置。

我不能确定为什么需要重新启动,但我想某些配置需要更改以启用与已在车队中运行的测功机的连接。


推荐阅读