Jef*_*eff 8 javascript node.js openshift forever
我在OpenShift的免费套餐上部署了我的第一个Node.js应用程序,它运行良好.
OpenShift会在崩溃时自动重启我的Node应用程序,还是我必须设置Forever.js?我尝试设置它,它不会工作.运行后node_modules/forever/bin/forever start app.js(工作目录是app-root/repo本地副本forever)我得到了这个输出:
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: app.js
fs.js:240
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT, no such file or directory '/var/lib/openshift/5397416f5004466c0b000080/.forever/VQMF.log'
at Object.openSync (fs.js:240:18)
at Object.startDaemon (/var/lib/openshift/5397416f5004466c0b000080/app-root/runtime/repo/node_modules/forever/lib/forever.js:406:14)
at /var/lib/openshift/5397416f5004466c0b000080/app-root/runtime/repo/node_modules/forever/lib/forever/cli.js:258:13
at /var/lib/openshift/5397416f5004466c0b000080/app-root/runtime/repo/node_modules/forever/lib/forever/cli.js:145:5
at Object.oncomplete (/var/lib/openshift/5397416f5004466c0b000080/app-root/runtime/repo/node_modules/forever/lib/forever.js:358:11)
Run Code Online (Sandbox Code Playgroud)
那么,OpenShift是否为我管理我的应用程序的运行状况,或者我需要让Forever工作吗?如果是的话,对我得到的错误有任何想法吗?
是的,OpenShift会在崩溃时自动重启您的Node应用程序.OpenShift不使用forever.js,但它使用node-supervisor.您可以通过要求不存在的东西来测试它.尽快修复它,因为日志可以快速重新启动应用程序.这是OpenShift上的nodejs.log登录,显示它正在运行node-supervisor:
DEBUG: Running node-supervisor with
DEBUG: program 'server.js'
DEBUG: --watch '/var/lib/openshift/53a9e06ae0b8cde26300008e/app-root/data/.nodewatch'
DEBUG: --ignore 'undefined'
DEBUG: --extensions 'node|js|coffee'
DEBUG: --exec 'node'
DEBUG: Starting child process with 'node server.js'
DEBUG: Watching directory '/var/lib/openshift/53a9e06ae0b8cde26300008e/app-root/data/.nodewatch' for changes.
Run Code Online (Sandbox Code Playgroud)
目前,OpenShift的默认行为涉及使用supervisor启动,监视和重新启动nodejs应用程序.
以下是nodejs的各种init选项的快速概述:
package.json带有main条目的有效文件(包含服务器脚本的名称),则OpenShift将使用supervisor以启动该脚本来初始化您的应用.force_npm_deploy标记文件(一个空文件.openshift/markers/use_npm) - 那么OpenShift将运行npm start.这将运行package.json文件scripts.start实体中定义的任何内容.server.js使用supervisor(作为后备选项).这里有一些额外的注释:https://www.openshift.com/blogs/10-reasons-openshift-is-the-best-place-to-host-your-nodejs-app#npm
| 归档时间: |
|
| 查看次数: |
2018 次 |
| 最近记录: |