在 elasticbeanstalk 中,我可以 ssh 进入并手动重新启动(节点)应用程序吗?

在 elasticbeanstalk 中,我可以 ssh 进入并手动重新启动(节点)应用程序吗?

我想要eb ssh进入,停止节点应用程序(而不是整个实例),进行调试更改,然后npm start

当我eb ssh进入时,我可以检查我的文件并进行编辑。但我无法使用命令npm,而且似乎无法使用我的 bash-fu 发现节点进程。在 aws cli 文档中,我只看到eb stop和 ,eb start这会重新启动整个服务器(我认为可以安全地假设我的更改会丢失)。

这难道根本不可能吗?

答案1

要修改正在运行的代码,请编辑以下文件:

/var/app/current

然后,运行:

sudo pkill -f node

将导致你的节点应用程序重新启动,并运行最新的代码。

答案2

Elastic Beanstalk 使用 upstart 来管理其流程。

您可以使用 initctl 重新启动进程。

例如

initctl restart nodejs

start显然,如果它由于某种原因尚未运行,您可以启动它而不是重新启动它。

类似地,你可以将相同的方法应用于 upstart 管理的任何进程。你可以使用以下命令找到这些进程的名称:

initctl list

答案3

我的回复类似的问题

要点是,对于特定于 nodejs 的应用程序,尝试

# to start the process
python /opt/elasticbeanstalk/containerfiles/ebnode.py --action start-all
# to stop the process
sudo python /opt/elasticbeanstalk/containerfiles/ebnode.py --action stop-all

相关内容