我想要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