Javascript 是否有必要在OpenShift上使用ever.js?
我已经在OpenShift的免费层上部署了我的第一个Node.js应用程序,效果非常好 OpenShift会在我的节点应用程序崩溃时自动重新启动吗?还是我必须设置Forever.js?我试着设置它,但它不起作用。运行Javascript 是否有必要在OpenShift上使用ever.js?,javascript,node.js,openshift,forever,Javascript,Node.js,Openshift,Forever,我已经在OpenShift的免费层上部署了我的第一个Node.js应用程序,效果非常好 OpenShift会在我的节点应用程序崩溃时自动重新启动吗?还是我必须设置Forever.js?我试着设置它,但它不起作用。运行node\u modules/forever/bin/forever start app.js(工作目录为app root/repo,带有forever的本地副本)后,我得到以下输出: warn: --minUptime not set. Defaulting to: 1000
node\u 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)
那么,OpenShift是为我管理应用程序的运行状况,还是我需要永远工作?如果是这样,你知道我的错误吗?是的,OpenShift会在你的节点应用程序崩溃时自动重启。OpenShift不使用ever.js,但它使用。你可以通过要求一些不存在的东西来测试它。但要快速修复,因为重新启动应用程序时,日志会快速增长。以下是OpenShift上nodejs.log的日志,它显示它正在运行节点管理器:
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.
目前,OpenShift的默认行为包括使用
supervisor
启动、监视和重新启动nodejs应用程序
下面是nodejs的各种init选项的简要概述:
package.json
文件和main
条目(),则OpenShift将使用supervisor
启动该脚本来初始化您的应用程序.openshift/markers/use\u npm
中为空文件),则openshift将只运行npm start
。这将运行您的包.json
文件的脚本.start
实体中定义的任何内容supervisor
运行server.js
(作为备用选项)这里提供了一些附加说明:有趣,日志在哪里?它是否使用
main
或脚本。为此启动
?使用应用程序下openshift站点的命令字符串将ssh安装到系统上。然后是cd app根目录/日志,所有日志都在那里。我确信他们正在使用脚本进行部署,因为在启动应用程序之前已经启动/安装/设置了很多东西。。。不过,我还没有深入了解它是哪一个脚本。谢谢,这也很有帮助。:)完美的问题,这正是我需要知道的从模数(这也重新启动您的应用程序)移动过来。模数还可以选择向您发送电子邮件,有人知道OpenShift是否可以做到这一点吗?(看起来节点主管没有该选项)