Heroku:“heroku ps:exec”和“heroku run bash”有啥区别?

Posted

技术标签:

【中文标题】Heroku:“heroku ps:exec”和“heroku run bash”有啥区别?【英文标题】:Heroku: what is the difference between "heroku ps:exec" and "heroku run bash"?Heroku:“heroku ps:exec”和“heroku run bash”有什么区别? 【发布时间】:2019-06-20 12:48:15 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于Heroku:“heroku ps:exec”和“heroku run bash”有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

Heroku 部署和 pyodbc

设置 Heroku 和 GoDaddy? [关闭]

Heroku 和 MongoDB 地图集连接

如何将nodejs和vuejs部署到heroku

Heroku 和 Angular 路由

Heroku 在部署 MEVN 应用程序时构建错误,为啥 heroku 显示 babel-loader 和 vue-loader 错误?