2016-12-09 7 views
1

Я отредактировал переменную startup-script для одного из моих экземпляров, запущенных в Google Cloud Platform Engine Engine. Мне бы хотелось, чтобы он вызывал вечный скрипт, чтобы убедиться, что мое приложение для узла запущено. Поэтому я добавил:Запуск вечного сценария из сценария запуска платформы Google Cloud Platform App Engine

cd /opt/bitnami/apps/myapp 
forever start --workingDir /opt/bitnami/apps/myapp/ --sourceDir /opt 
/bitnami/apps/myapp/ app.js 

после #/бен/Баш линии (также попытался без компакт-диска, как это на самом деле не нужно основываясь на моей команде!). Но как только vm запущен, запуск навсегда списка не отображает мою вечную задачу как когда-либо начатую. Если я скопирую и вставляю эту команду навсегда в терминал gcloud и запускаю, задача отображается нормально, и мое приложение не начинает проблем.

Я не называю это правильно каким-то образом в сценарии bash?

+0

вы можете перейти в каталог, где app.js присутствует, а затем попробуйте запустить 'навсегда начать app.js' –

+1

@Ideluca - случайно вы это понимаете? У меня такая же проблема – Brian

+0

@Brian См. Мой ответ – kuzyn

ответ

-1

Правильный способ начать свой nodejs приложение на AppEngine, чтобы указать "scripts" поле в package.json, как documentation

Ниже приведен пример заимствован из этого sample

"scripts": { 
    "start": "node ./bin/www", 
    "test": "cd ..; npm run t -- appengine/analytics/test/*.test.js" 
    }, 

Если вы однако, интересуются только запуском сценария узла и не интересуются функциями, которые появляются в приложении Google, поэтому вы можете просто запустить его на экземпляре Google Compute Engine.

+1

Это не то, что я прошу. Я знаю, как запустить свое приложение в Google Cloud Platform. Я пытаюсь выяснить, как начать, когда экземпляр перезапускает/запускает. Вместо ручного. – ldeluca

1

The simple answer is that GAE does this by default. Нет необходимости в forever или PM2. Есть определенные медицинские осмотры, которые GAE делают на контейнере Докера держат ваше приложение, и если они не проходят экземпляр автоматически перезапущен

Если вы хотите детальный контроль над этими проверками (называемых Legacy Health Checks) вы можете добавить это ваш app.yaml файл:

health_check: 
    enable_health_check: True 
    check_interval_sec: 5 
    timeout_sec: 4 
    unhealthy_threshold: 2 
    healthy_threshold: 2 

Там также обновленные механизмы (так называемые Updated Health Checks), которые все еще находятся в стадии разработки, но можно использовать вместо