从 Google Cloud Platform App Engine 启动脚本运行永久脚本

lde*_*uca 2 bash google-app-engine node.js forever mean-stack

我已经编辑了在 Google Cloud Platform App Engine 上运行的实例之一的启动脚本变量。我希望它调用一个永久脚本来确保我的节点应用程序正在运行。所以我补充道:

cd /opt/bitnami/apps/myapp
forever start --workingDir /opt/bitnami/apps/myapp/ --sourceDir /opt
/bitnami/apps/myapp/ app.js
Run Code Online (Sandbox Code Playgroud)

在 #!/bin/bash 行之后(也尝试过不使用 cd,因为根据我的命令,这并不是真正必要的)。但是,一旦虚拟机启动,运行永久列表不会将我的永久任务列为已启动。如果我将该永久命令复制并粘贴到 gcloud 终端并运行,该任务显示正常,并且我的应用程序启动没有问题。

我在 bash 脚本中是否没有正确调用它?

kuz*_*zyn 5

简单的答案是 GAE 默认执行此操作。不需要foreverPM2。GAE 对保存您的应用程序的 Docker 容器执行某些运行状况检查,如果未通过,实例将自动重新启动

如果您想对这些检查(称为旧版运行状况检查)进行精细控制,您可以将其添加到您的app.yaml文件中:

health_check:
  enable_health_check: True
  check_interval_sec: 5
  timeout_sec: 4
  unhealthy_threshold: 2
  healthy_threshold: 2
Run Code Online (Sandbox Code Playgroud)

还有更新的机制(称为更新的健康检查)仍处于测试阶段,但可以替代使用